[백준 11947] 이런 반전이 [Java]
2025. 8. 14. 18:26ㆍPS 풀이/Baekjoon Online Judge
문제
11947번: 이런 반전이
boj.ma
풀이
문제 요약
두 수의 곱이 최대가 되도록 1 ~ N에 대해 “사랑스러운 N”을 적절히 구성해 출력하자.
아이디어
두 수가 4999…, 5000… 일 때 곱이 최대가 된다. 4999… 형태의 수를 “goodNum”이라 하자. N에 대한 goodNum이 N 이하라면, goodNum*(goodNum + 1)이 정답이 된다.
만약 N이 goodNum보다 작다면, “사랑스러운 N”을 구한 후 N과 곱한 값을 출력하면 된다.
// Solve
long goodNum = 5 * (long) Math.pow(10, strN.length() - 1) - 1;
if (N >= goodNum) {
sb.append(goodNum * (goodNum + 1)).append("\\n");
} else {
int origin = N;
long digit = 1;
long other = 0;
while (N > 0) {
final long a = N % 10;
other += (9 - a) * digit;
digit *= 10;
N /= 10;
}
sb.append(origin * other).append("\\n");
}
풀이 시간
20분
소스코드
https://github.com/rogi-rogi/problem-solving/blob/main/baekjoon-online-judge/easy/11947.java
problem-solving/baekjoon-online-judge/easy/11947.java at main · rogi-rogi/problem-solving
Daily Problem Solving Challenges. Contribute to rogi-rogi/problem-solving development by creating an account on GitHub.
github.com
'PS 풀이 > Baekjoon Online Judge' 카테고리의 다른 글
| [백준 22965] k개의 부분 배열 [Java] (0) | 2025.08.16 |
|---|---|
| [백준 01612] 가지고 노는 1 [Java] (1) | 2025.08.15 |
| [백준 15311] 약 팔기 [Java] (4) | 2025.08.13 |
| [백준 04446] ROT13 [Java] (1) | 2025.08.13 |
| [백준 30679] 별 가두기 [Java] (0) | 2025.08.12 |