출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]

상세 컨텐츠

본문 제목

백준 1748 수 이어 쓰기 1(brute force)

알고리즘

by 장동균 2020. 7. 18. 23:34

본문

https://www.acmicpc.net/problem/1748

 

1748번: 수 이어 쓰기 1

첫째 줄에 N(1≤N≤100,000,000)이 주어진다.

www.acmicpc.net

#include <iostream>

using namespace std;

int N;

int main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cin >> N;
    long long ans = 0;
    int i = 1;
    while (i <= N)
    {
        ans += N - i + 1;
        i *= 10;
    }
    cout << ans << "\n";
}

 

어떻게 풀어야 할지 생각해보다가 생각하기가 너무 싫어서 다른 분의 코드를 봐버렸다...(출처:https://rebas.kr/753) 아마 더 충분한 시간을 가지고 고민했어도 이런 획기적인(?) 생각은 하지 못했을 것이다. 

 

이 코드의 핵심은 자릿수로 나누어서 생각한다는 것이었다.

 

input이 120인 경우

 

1의 자리를 가지는 개수 = 252개

10의 자리를 가지는 개수 = 252-9개

100의 자리를 가지는 개수 = 252 -99개

 

총 252개가 된다.

 

아이디어 자체가 되게 재밌고 대단한 것 같다. 잘 기억해뒀다가 나중에 써먹는 일이 있었으면 좋겠다.

'알고리즘' 카테고리의 다른 글

백준 14502 연구소(dfs)  (0) 2020.07.23
BFS, DFS  (0) 2020.07.19
백준 1966 프린터 큐(brute force)  (0) 2020.07.18
백준 7568 덩치(brute force)  (0) 2020.07.16
백준 4641 Doubles(brute force)  (0) 2020.07.16

관련글 더보기

댓글 영역