본문 바로가기

전체 글

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로 받으면 안 되고.. 더보기
2355 시그마 문제를 보자마자 입력 사이즈 떄문에 문제가 생기겠다는 생각이 들었고 두번째로 시간도 얼마 주지 않으므로 수학 공식을 써야 겠다고 느낌이 왔다. 저 등차수열의 합 공식이 기억 안 나서 검색해서 찾았다. 내가 이 공식을 다시 보게 될줄이야. #include #include using namespace std; using i64 = long long; int main() { i64 a, l, n; scanf("%lld", &a, &l); printf("%lld", (max(a, l) - min(a, l) + 1)*(a+l)/2); } 처음에 코드를 이렇게 작성했다. 그런데 값이 너무 크고 이상하게 나와서 난 max 함수가 문제있는 줄 알았다. 아.. 얘가 int형만 인자로 받아서 long long 타입을 넣어.. 더보기
10707 수도요금 #include #include using namespace std; int main() { int a, b, c, d, p; scanf("%d %d %d %d %d", &a, &b, &c, &d, &p); int coast_x = p * a; int coast_y = b; if(p > c) coast_y += d * (p - c); printf("%d", min(coast_x, coast_y)); } 입력을 정의했다 어떻게 풀지 적어봤다. 쉬워서 할말이 없다 #include #include using namespace std; int main() { int a, b, c, d, p; scanf("%d %d %d %d %d", &a, &b, &c, &d, &p); int coast_x = p * a; i.. 더보기
5532 방학 숙제 먼저 문제 정리부터 했다. 정리하면서 어떻게 풀지 감이왔다. 그래서 바로 식으로 적어버렸다. 그런데 만약 페이지가 딱 떨어지지 않으면 하루를 더해야 하고 나누어 떨어지면 하루를 더하면 안된다. 여기서 조금 애매했다. 그냥 조건문으로 확인하면 쉽지 근데 더 간결하게 짜고 싶어서 고민이었다. #include #include using namespace std; int main() { int l, a, b, c, d; scanf("%d %d %d %d %d", &l, &a, &b, &c, &d); printf("%d", l - max(a/c + max(a%c>0?1:0,0), b/d + max(b%d>0?1:0,0))); return 0; } 결론은 이렇다 조건문으로 구구절절하게 하기 싫어서 삼항연산자로 때려.. 더보기
10162 전자레인지 문제 정의를 했다 전에 알고리즘 수업을 들을 때 이런 문제를 푼 것 같아서 설마 그건가 했는데 그냥 나누는 문제였다. 지금 생각해보니 그리드 할 때 배웠던 것 같다. 이상한 나라 동전 문제 (..) #include int main() { int t; scanf("%d", &t); if(t % 10 != 0){ printf("-1"); return 0; } printf("%d ", t / 300); t %= 300; printf("%d ", t / 60); t %= 60; printf("%d", t/10); return 0; } 별로 어렵지는 않았다. 그냥 무난.. 더보기