본문 바로가기

알고리즘12

[C] 백준 2869 N일 걸린다고 했을 때, 달팽이는 AN미터 올라가고 B(N-1)미터 미끄러진다. 식을 세우면 V ≤ AN - B(N-1) N ≥ (V - B) / (A - B) N은 정수이기 때문에 계산 결과가 실수인 경우에 올림을 해줬다. #include int ceil(double n) { int temp = (int)n; if (n > temp) return temp + 1; else return temp; } int main() { int A, B, V; scanf("%d %d %d", &A, &B, &V); double DAY; DAY = ((double)V - (double)B) / ((double)A - (double)B); printf("%d\n", ceil(DAY)); return 0; } 2021. 8. 14.
[C] 백준 2939 일단 5로 나누고 5로 나눈 나머지를 이용해서 3kg짜리 봉지가 몇 개 필요한지 판단 #include int main() { int N = 0; scanf("%d", &N); if (N % 5 == 0) printf("%d", N / 5); else if (N % 5 == 1) { if (N - 5 > 0) printf("%d", N / 5 - 1 + 2); else printf("-1"); } else if (N % 5 == 2) { if (N - 10 > 0) printf("%d", N / 5 - 2 + 4); else printf("-1"); } else if (N % 5 == 3) printf("%d", N / 5 + 1); else if (N % 5 == 4) { if (N - 5 > 0) pr.. 2021. 3. 12.
[C] 백준 10250번 두 가지 경우로 나뉜다. 1. 손님의 수가 호텔 층에 딱 나누어 떨어질 경우 2. 그렇지 않아서 다시 1층부터 배정하는 경우 #include int main() { int T; int H, W, N; scanf("%d", &T); for (int j = 0; j < T; j++) { scanf("%d %d %d", &H, &W, &N); if (N % H == 0) printf("%d\n", H * 100 + N / H); else printf("%d\n", (N % H) * 100 + N / H + 1); } return 0; } 2021. 3. 10.
[C] 백준 2562 for문을 이용해 최대값을 갱신하면서 최종 최대값을 찾는 문제 주어진 수가 9개 이므로 숫자 두 개씩 비교하는 크기비교는 8번 수행 #include int main() { int num[9]; int max = 0; for (int i = 0; i num[max]) max = i; } printf("%d \n%d", num[max], max + 1); return 0; } 2021. 3. 10.
[C] 백준 1193 진작 풀었는데 오타 못 잡아서 뻘 짓함..ㅎㅎ;; ​ X 번째 분수가 있는 대각선의 위치를 구한 다음에 그 대각선의 마지막 분수의 번호와 X의 차를 이용해 X 번째 분수의 값을 출력했다. #include int main() { int a; int b = 1; int i; scanf("%d", &a); for (i = 1; a > b; ) b += ++i; if (i % 2 == 0) printf("%d/%d", i - (b - a), 1 + (b - a)); else printf("%d/%d", 1 + (b - a), i - (b - a)); return 0; } 2021. 2. 20.
[C] 백준 2292 벌집 정중앙에 있는 1을 첫 번째 껍질 2, 3, 4, 5, 6, 7을 두 번째 껍질(...등등등...)이라고 생각했다. ​ 최소 개수의 방은 N번 방이 몇 번째 껍질에 위치하느냐를 찾으면 된다. #include int main() { int a; int b = 1; int i; scanf("%d", &a); for (i = 1; a > b; i++) b += 6 * i; printf("%d", i); return 0; } 2021. 2. 20.