Post

[BOJ/백준] 6162번 : Superlatives (Java)

📘 백준 6162번 : Superlatives


문제 바로가기


💡 문제 풀이


예상 강수량(E)과 실제 강수량(A)에 대해서 E ≤ A이면 “no drought”, 그렇지 않으면 5배마다 “mega”를 하나씩 붙임.

반복문을 통해 E > m*A 인 동안 “mega”를 추가하며 m *= 5로 확장.


✅ 코드 (Java)


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

// https://www.acmicpc.net/problem/6162
// 예상 강수량(E)과 실제 강수량(A)에 대해서 
// E ≤ A이면 "no drought", 그렇지 않으면 5배마다 "mega"를 하나씩 붙임
// 반복문을 통해 E > m*A 인 동안 "mega"를 추가하며 m *= 5로 확장
public class B6162_Superlatives {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		int K = Integer.parseInt(br.readLine()); // 데이터 세트 개수
		for (int ds = 1; ds <= K; ds++) {
			sb.append("Data Set ").append(ds).append(":\n"); // 출력 양식
			StringTokenizer st = new StringTokenizer(br.readLine());
			int E = Integer.parseInt(st.nextToken()); // 예상 강수량
			int A = Integer.parseInt(st.nextToken()); // 실제 강수량
			if (E <= A) { // 예상 강수량보다 실제 강수량이 많음
				sb.append("no ");
			} else {
				int m = 5; // 배수가 5배씩 증가함
				while (true) {
					if (E <= m * A) { // 실제 강수량의 다음 범위 이하면 반복문 끝
						break;
					}
					sb.append("mega "); // 해당 범위를 넘어가면 mega 추가
					m *= 5; // 범위 넘기기
				}
			}
			sb.append("drought\n\n"); // 공통된 출력 저장
		}
		System.out.println(sb); // 출력
		br.close();
	}
}


💾 제출 결과


보러 가기