※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 25270번 문제인 99 Problems이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/25270
양의 정수 N이 주어질 때, N과 가장 가까우면서 99로 끝나는 양의 정수(여럿이라면 그중 큰 수)를 출력하는 문제이다.
N이 99보다 작다면 답이 99임은 자명하다. 또한 N이 99로 끝난다면 N 자기 자신이 답이 되는 것 또한 자명하다.
N이 99보다 크고 N이 99로 끝나지 않는다면 N+1, N-1, N+2, N-1, ..., N+k, N-k, ...를 순서대로 둘러보면서 먼저 나오는 99로 끝나는 수를 찾아 출력해 문제를 해결하자. 이러한 시도는 100번 이내로 항상 끝나게 될 것임을 관찰하자.
아래는 제출한 소스코드이다.
#include <iostream>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
int N; cin >> N;
if (N < 99) cout << 99;
else {
int i = 0;
while (1) {
if ((N + i) % 100 == 99) {
cout << N + i;
break;
}
else if ((N - i) % 100 == 99) {
cout << N - i;
break;
}
i++;
}
}
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 25704 // C++] 출석 이벤트 (0) | 2022.11.10 |
---|---|
[BOJ 25774 // C++] Simplified Calander System (0) | 2022.11.10 |
[BOJ 25850 // C++] A Game Called Mind (0) | 2022.11.10 |
[BOJ 24348 // C++] ИЗРАЗ (0) | 2022.11.09 |
[BOJ 25786 // C++] Decimal XOR (0) | 2022.11.09 |