Problem A 풀이 (C++)

 문제 링크 : https://codeforces.com/contest/1560/problem/A

k가 최대 1000이기 때문에 먼저 1000번째 숫자까지 구한 후 case마다 답을 한다.


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
#include <iostream>
 
using namespace std;
 
int main() {
 
    int v[1001];
    v[1000= 0;
 
    int idx = 1;
    int num = 1;
 
    while (v[1000== 0) {
 
        if (num % 3 != 0 && num % 10 != 3) {
            v[idx] = num;
            idx++;
        }
 
        num++;
    }
 
    int t;
    cin >> t;
    
    while (t--) {
 
        int k;
        cin >> k;
 
        cout << v[k] << endl;
    }
 
    return 0;
}
cs

댓글