본문 바로가기

백준

3053 택시 기하학 문제 항상 위에서 아래쪽으로 순서대로 푸는데 이 문제는 너무 풀기 싫어서 미뤄뒀다. 그러다 이제 기초2 문제는 다 풀고 이 문제만 남아서 억지로 풀기 시작했다. 먼저 입력과 출력을 정의했다. 택시 기하학은 또 뭐야.. 힌트에 유클리드 기하학 위키가 있길래 읽었다. 3개 다 읽었는데 그래도 잘 모르겠다ㅋㅋㅋ 그래도 택시 기하학이 뭔지는 알겠다. 설마 택시 했는데 진짜 택시였다. 유클리드 기하학이 a에서 b로 갈 때 최단경로로 대각선을 긋는다면 택시 기하학에서는 대각선 말고 좌표 선을 따라 움직인다. 택시 기하학이 원의 정의를 만족시킨다는 것도 뭔지 알겠다. 저 마름모 모양이 택시 기하학에서는 한 점에서 모든 거리가 같다. 그래서 넓이는 마름모의 넓이로 구할 수 있다. #include int main() {.. 더보기
15727 조별과제를 하려는데 조장이 사라겼다 #include int main() { int l; scanf("%d", &l); printf("%d", (l + 4)/5); } 올림 문제였다. 달팽이 나무타는 문제랑 비슷해서 쉽게 풀었다. 여담이지만 처음에 초파리 다리털 개수 구하라 할까봐 조금 걱정했다. 더보기
15873 공백 없는 A+B #include int main() { int n; scanf("%d", &n); printf("%d", n/10 + n%10); } 보자마자 아 조빱문제내; 하고 바로 풀어서 냈다 그리고 틀렸다ㅋㅋㅋ 입력 조건을 대충 봐서 0 n) printf("%d", n/10 + n%10); else if(n % 10 == 0) printf("%d", n/.. 더보기
17362 수학은 체육과목 입니다 2 전에도 체육과목인줄 알았지 수학이었다 규칙 찾는다고 막 하다가 어찌저찌 찾았다 열심히 짰는데 틀렸다 필기를 보면 알겠지만 중지를 두 번 적었다. 그리고 5번에 새끼인데 약지를 적어놨다. 그래서 코드에도 똑같이 잘못 적어서 틀렸다. 이래서 설계를 잘해야 하나보다 #include int main() { int n; scanf("%d", &n); switch(n % 8){ case 1: printf("1"); break; case 2: case 0: printf("2"); break; case 3: case 7: printf("3"); break; case 4: case 6: printf("4"); break; case 5: printf("5"); break; } } 조금 더 잘 짤 수 있을거란 느낌은 오는데.. 더보기
5575 타임카드 입력이 너무 많았다! 그래서 어쩌지 하다 3*3짜리 배열을 2개 만들어서 하나는 출근을 하나는 퇴근을 다룰까 생각했는데 보니 하는 일이 같아서 반복문으로 한줄한줄씩 처리하기로 했다. #include int main() { int ah, am, as; int bh, bm, bs; int time1, time2; for(int i = 0; i < 3; i++){ scanf("%d %d %d", &ah, &am, &as); scanf("%d %d %d", &bh, &bm, &bs); time1 = ah*3600 + am*60 + as; time2 = bh*3600 + bm*60 + bs; printf("%d %d %d\n", (time2 - time1)/3600, (time2 - time1)%3600/60, .. 더보기
10768 특별한 날 #include int main() { int month, day; scanf("%d %d", &month, &day); //printf("%d %d", month, day); if(month > 2) printf("After"); else if(month 18) printf("After"); else printf("Special"); } } 너무 쉽다 생각해서 글도 안 적었는데 더 좋은 방법이 있었다! pair를 쓰면 되는데 이거에 대해 처음 들어봐서 뭔지 찾아봤다. pair 두 객체를 하나의 객체로 취급할 수 있게 해준다 사용법 pair date : pair 클래스 da.. 더보기
16673 고려대에는 공식 와인이 있다 수학 문제였다. #include int main() { int n, k, p; scanf("%d %d %d", &n, &k, &p); printf("%d", k*n*(n+1)/2 + p*n*(n+1)*(2*n + 1)/6); } 간단한 코드 더보기
1297 TV크기 문제를 읽고 정리했다. 배운 강정, 이제는 floor 안 쓰고 몫으로 계산하려 하고있다. 그런데 이 문제는 어쩔 수 없이 루트 떄문에 sqrt를 써야한다. #include #include using namespace std; int main() { double a, b, c, result; scanf("%lf %lf %lf", &c, &a, &b); //printf("%lf %lf %lf", c, a, b); result = sqrt(c*c / (a*a + b*b)); //printf("%lf", result); printf("%d %d", a*result/1 , b*result/1); } 계산을 다 double형으로 할거라 바로 double형으로 받았다. 몰랐는데 double형은 %f로 받으면 안 되고.. 더보기