티스토리 뷰

백준/골드

[백준 1790번] 수 이어 쓰기 2 (C++)

게임개발기원 2025. 4. 29. 00:19

문제링크 : https://www.acmicpc.net/problem/1188

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

int main() 
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);

    int N, K;
    cin >> N >> K;

    int tmp = 0;
    int result = -1;
    for(int i=1; i<=N; i++)
    {
        string stri = to_string(i);
        tmp += stri.size();
        if(tmp >= K)
        {
            int gap = tmp - stri.size();
            result = stri[K-gap-1]-'0';
            break;
        }
    }

    cout << result;

    return 0;
}

 

1~N까지의 값을 모두 문자열로 변환하여 길이를 체크했다.

해당 길이 값을 누적하여 더하며 K값보다 크거나 같은 순간을 체크한다.

이후 누적하여 더해진 값과 현재 문자열의 길이 값을 통해 차이를 구해주고, 해당 차이를 참고하여 현재 문자열에 맞는 문자를 출력해준다.

주의할 점은 불가능한 경우 -1을 출력해야 한다는 것이다.

'백준 > 골드' 카테고리의 다른 글

[백준 1253번] 좋다 (C++)  (0) 2025.05.04
[백준 2877번] 4와 7 (C++)  (0) 2025.04.30
[백준 1188번] 음식 평론가 (C++)  (0) 2025.04.28
[백준 1405번] 미친 로봇 (C++)  (0) 2025.04.27
[백준 1484번] 다이어트 (C++)  (0) 2025.04.25
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/07   »
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
글 보관함