Codeforces Round #739 (Div. 3) Problem. A

https://codeforces.com/contest/1560/problem/A
Codeforces Round #739 (Div. 3)

A. Dislike of Threes

TimeLimit MemoryLimit Difficulty Tags
1 S 256 MB 800 implementation
Attr SubNo SolveTime Time Memory Accept?
1 126297598 20min 31 ms 3660KB Accepted

문제 요약

Polycarp은 3을 싫어한다. 3으로 끝나는 문자와 3으로 나누어 떨어지는 문자를 제외하고 숫자를 세어서 n번째 숫자를 구해라

피드백

Input

1-st line : Testcase (1 <= t <= 100)
각 Testcase 마다
t-th line : 1개의 정수 (1 <= k <= 1000)

Output

각 Testcase 마다
1개의 정수 x : Polycarp이 싫어하지 않는 k-th 숫자


문제 풀이

정말 간단하게 풀 수 있다. 단순한 1차원 반복문을 사용하여 num이 3으로 나누어떨어지거나 3으로 끝나면(10으로 나누었을때 나머지가 3이면) 한번 더 더해서 카운트를 건너뛰어주었다.


최종 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>

using namespace std;

int main(void) {
int TestCase = 0;
cin >> TestCase;
while (TestCase --)
{
int k;
cin >> k;
int num = 0;
for(int i = 1; i <= k; i++) {
num++;
while(num % 3 == 0 || num % 10 == 3) num++;
}
cout << num << endl;
}

return 0;
}

느낀점

800점대 문제면서 Div. 3 A번 문제라 정말 쉬웠다. 간단한 루프문으로 해결될줄은 몰랐지만 생각보다 빠르게 끝냈다.

댓글