목록PS (101)
The Way
백준 온라인 저지(BOJ) 2965번 문제https://www.acmicpc.net/problem/2965 1. 문제 요약캥거루 세 마리가 1차원 좌표 위에 있다.바깥쪽의 두 마리 중 한 마리가 다른 두 캥거루 사이로 이동한다. 캥거루는 겹치면 안된다.캥거루는 최대 몇 번 움직일 수 있을까? 2. 알고리즘바깥쪽 두 캥거루 사이의 길이는 직전 상황에서 가운데 캥거루와 바깥쪽의 캥거루 사이의 길이 중 큰 것과 같다.이 점을 생각한다면, 쉽게 구할 수 있을 것이다. 3. 코드 #include int main() { int A, B, C; scanf("%d %d %d", &A, &B, &C); printf("%d\n", ((B - A) > (C - B) ? B - A : C - B) - 1); return 0; }
백준 온라인 저지(BOJ) 2752번 문제https://www.acmicpc.net/problem/2752 1. 문제 요약a, b, c 세 수가 입력되었을 때 크기가 작은 순으로 출력하기. 2. 알고리즘a, b를 비교하여 큰 수를 b에 놓고, b, c를 비교하여 큰 수를 c에 놓으면 가장 큰 게 c로 간다.a, b를 다시 한 번 비교하여 큰 수를 b에 놓자. 3. 코드 #include int main() { int a, b, c, t; scanf("%d %d %d", &a, &b, &c); if (a > b) { t = a; a = b; b = t; } if (b > c) { t = b; b = c; c = t; } if (a > b) { t = a; a = b; b = t; } printf("%d %d..
백준 온라인 저지(BOJ) 2884번 문제https://www.acmicpc.net/problem/2884 1. 문제 요약알람을 주어진 시간보다 45분 일찍 맞추려고 한다.알람을 설정해야 할 시간을 출력. 2. 알고리즘생략 3. 코드 #include int main() { int H, M; bool h = false; scanf("%d %d", &H, &M); if (M < 45) { M += 15; h = true; } else M -= 45; if (h) { if (H) H -= 1; else H = 23; } printf("%d %d\n", H, M); return 0; }
백준 온라인 저지(BOJ) 1010번 문제https://www.acmicpc.net/problem/1010 1. 문제 요약강의 서쪽에 N개, 강의 동쪽에 M개의 구역이 있다. (N 0) return mem[n][r]; if (r == 0 || n == r) return mem[n][r] = 1; return mem[n][r] = c(n - 1, r - 1) + c(n - 1, r); } int main() { int T; scanf("%d", &T); for (int i = 0; i < T; ++i) { int N, M; scanf("%d %d", &N, &M); printf("%lld\n", c(M, N)); } return 0; }
백준 온라인 저지(BOJ) 1181번 문제https://www.acmicpc.net/problem/1181 1. 문제 요약알파벳 소문자로 이루어진 N개의 단어가 들어올 때, 1. 길이가 짧은 것부터2. 길이가 같으면 사전 순으로 정렬하여 출력하기. 동일한 단어는 한번만 출력한다. 2. 알고리즘algorithm 헤더에서 제공하는 기본 sort를 이용해주면 간편하다.비교 함수만 작성해주면 간편. 중복 단어를 체크하기 위해 같은지 함수 또한 필요하다. 3. 코드 #include #include struct w { char c[51]; int len = 0; }; bool comp(w l, w r) { if (l.len != r.len) return l.len < r.len; for (int i = 0; i <..
백준 온라인 저지(BOJ) 1297번 문제https://www.acmicpc.net/problem/1297 1. 문제 요약TV의 대각선 길이와 가로 세로 비율 (ex 16:9)이 주어졌을 때 가로와 세로의 길이를 정수로 출력. 2. 알고리즘간단한 피타고라스 문제이다.하지만 언제나 정수와 실수가 섞여있으면 혼란이 생기는 법.혹시라도 실수가 정수로 처리되지 않는지 잘 확인하며 사용하자. 3. 코드 #include #include int main() { int L, a, b; double c, t1, t2; scanf("%d %d %d", &L, &a, &b); c = sqrt(a * a + b * b); t1 = a * L / c; t2 = b * L / c; printf("%d %d\n", (int)t1,..
백준 온라인 저지(BOJ) 2914번 문제https://www.acmicpc.net/problem/2914 1. 문제 요약곡의 개수 A와 멜로디의 개수 평균값을 올림한 I가 주어질 때 멜로디의 최소 갯수를 구하기. 2. 알고리즘A * (I - 1)은 I - 1일 때의 최대 갯수이다. 여기에 1을 더해주면 된다. 3. 코드 #include int main() { int A, I; scanf("%d %d", &A, &I); printf("%d\n", A * (I - 1) + 1); return 0; }
백준 온라인 저지(BOJ) 3053번 문제https://www.acmicpc.net/problem/3053 1. 문제 요약택시 기하학에서는 두 점 사이의 거리를 x축 거리 + y축 거리로 정의한다.택시 기하학에서 원을 그리면 따라서 45도 기울어진 정사각형 모양이 나올 것이다.반지름 R이 주어질 때 유클리드 기하학에서, 택시 기하학에서 원의 넓이를 소숫점 6자리까지 구하여라. 2. 알고리즘유클리드 기하학에서 원의 넓이는 $\pi R^2$이고,택시 기하학에서 원의 넓이는 $2R^2$이다. 3. 코드 #define _USE_MATH_DEFINES #include #include int main() { double R, S1, S2; scanf("%lf", &R); S1 = M_PI * R * R; S2 = ..
백준 온라인 저지(BOJ) 7572번 문제https://www.acmicpc.net/problem/7572 1. 문제 요약간지는 십간(갑을병정무기경신임계) + 십이지(자축인묘진사오미신유술해)로 구성된다.이를 정수(0~9)와 알파벳(A~L)로 치환해서 년도를 입력했을 때 해당 년도의 간지를 출력.ex) 2013년 -> 계사 -> F9 2. 알고리즘2013년이 F9이므로 2013년을 기준으로 계산하자.A를 0으로 보면 F는 5이다.2400 - 2013을 해준 이유는 음수가 되면 %연산이 이상해지기 때문에 10과 12의 공배수를 적당히 더해준 것이다. 3. 코드 #include int main() { int N, a, b; scanf("%d", &N); N += (2400 - 2013); a = (N + 5)..
백준 온라인 저지(BOJ) 2869번 문제 https://www.acmicpc.net/problem/2869 1. 문제 요약 달팽이가 높이 V미터의 나무를 올라간다. 낮에는 A미터 올라가고, 밤에는 B미터 미끄러진다. 정상까지 올라가는 데에 며칠이 걸리는지 구하시오. 2. 알고리즘 약간 계산이 복잡할 수 있는데, (올라감 + 미끄러짐)을 통해 (V - A)미터 이상 올라간 다음 날 정상에 도착하게 된다. 나누어 떨어지지 않는 경우도 잘 처리해줄 것. 문제는 이러면 V = A일 경우 음수 나눗셈에서 문제가 생긴다. 예외 처리를 추가해주자.. 3. 코드 #include using namespace std; int main() { int A, B, V; cin >> A >> B >> V; cout