๐Ÿ“ฆ Chango/๐Ÿฅ‘ BOJ ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ

[BOJ][C++] ๋ฐฑ์ค€ 4673๋ฒˆ: ์…€ํ”„ ๋„˜๋ฒ„

์„ ๋‹ฌ 2021. 9. 2. 09:16
๋ฐ˜์‘ํ˜•

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

 

4673๋ฒˆ: ์…€ํ”„ ๋„˜๋ฒ„

์…€ํ”„ ๋„˜๋ฒ„๋Š” 1949๋…„ ์ธ๋„ ์ˆ˜ํ•™์ž D.R. Kaprekar๊ฐ€ ์ด๋ฆ„ ๋ถ™์˜€๋‹ค. ์–‘์˜ ์ •์ˆ˜ n์— ๋Œ€ํ•ด์„œ d(n)์„ n๊ณผ n์˜ ๊ฐ ์ž๋ฆฌ์ˆ˜๋ฅผ ๋”ํ•˜๋Š” ํ•จ์ˆ˜๋ผ๊ณ  ์ •์˜ํ•˜์ž. ์˜ˆ๋ฅผ ๋“ค์–ด, d(75) = 75+7+5 = 87์ด๋‹ค. ์–‘์˜ ์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ,

www.acmicpc.net

 

๋ฌธ์ œ

์…€ํ”„ ๋„˜๋ฒ„๋Š” 1949๋…„ ์ธ๋„ ์ˆ˜ํ•™์ž D.R. Kaprekar๊ฐ€ ์ด๋ฆ„ ๋ถ™์˜€๋‹ค. ์–‘์˜ ์ •์ˆ˜ n์— ๋Œ€ํ•ด์„œ d(n)์„ n๊ณผ n์˜ ๊ฐ ์ž๋ฆฌ์ˆ˜๋ฅผ ๋”ํ•˜๋Š” ํ•จ์ˆ˜๋ผ๊ณ  ์ •์˜ํ•˜์ž. ์˜ˆ๋ฅผ ๋“ค์–ด, d(75) = 75+7+5 = 87์ด๋‹ค.

์–‘์˜ ์ •์ˆ˜ n์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์ด ์ˆ˜๋ฅผ ์‹œ์ž‘ํ•ด์„œ n, d(n), d(d(n)), d(d(d(n))), ...๊ณผ ๊ฐ™์€ ๋ฌดํ•œ ์ˆ˜์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. 

์˜ˆ๋ฅผ ๋“ค์–ด, 33์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค๋ฉด ๋‹ค์Œ ์ˆ˜๋Š” 33 + 3 + 3 = 39์ด๊ณ , ๊ทธ ๋‹ค์Œ ์ˆ˜๋Š” 39 + 3 + 9 = 51, ๋‹ค์Œ ์ˆ˜๋Š” 51 + 5 + 1 = 57์ด๋‹ค. ์ด๋Ÿฐ์‹์œผ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ˆ˜์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

33, 39, 51, 57, 69, 84, 96, 111, 114, 120, 123, 129, 141, ...

n์„ d(n)์˜ ์ƒ์„ฑ์ž๋ผ๊ณ  ํ•œ๋‹ค. ์œ„์˜ ์ˆ˜์—ด์—์„œ 33์€ 39์˜ ์ƒ์„ฑ์ž์ด๊ณ , 39๋Š” 51์˜ ์ƒ์„ฑ์ž, 51์€ 57์˜ ์ƒ์„ฑ์ž์ด๋‹ค. ์ƒ์„ฑ์ž๊ฐ€ ํ•œ ๊ฐœ๋ณด๋‹ค ๋งŽ์€ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 101์€ ์ƒ์„ฑ์ž๊ฐ€ 2๊ฐœ(91๊ณผ 100) ์žˆ๋‹ค. 

์ƒ์„ฑ์ž๊ฐ€ ์—†๋Š” ์ˆซ์ž๋ฅผ ์…€ํ”„ ๋„˜๋ฒ„๋ผ๊ณ  ํ•œ๋‹ค. 100๋ณด๋‹ค ์ž‘์€ ์…€ํ”„ ๋„˜๋ฒ„๋Š” ์ด 13๊ฐœ๊ฐ€ ์žˆ๋‹ค. 1, 3, 5, 7, 9, 20, 31, 42, 53, 64, 75, 86, 97

10000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์…€ํ”„ ๋„˜๋ฒ„๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ž…๋ ฅ์€ ์—†๋‹ค.

์ถœ๋ ฅ

10,000๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์…€ํ”„ ๋„˜๋ฒ„๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆœ์„œ๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

int d (int n){
    
    int tmp = 0, divisor = 10, sum = 0;
    vector <int> v;
    
    //์ฃผ์–ด์ง„ ์ •์ˆ˜ n์˜ ๊ฐ ์ž๋ฆฌ์ˆซ์ž๋“ค์„ v์— ๋„ฃ๋Š”๋‹ค
    while(true){
        tmp = n % divisor;
        if(tmp == n){
            v.push_back(tmp / (divisor/10));
            divisor *= 10;
            break;
        }
        v.push_back(tmp / (divisor/10));
        divisor *= 10;
    }
    
    //๊ฐ ์ž๋ฆฌ์ˆซ์ž๋“ค์˜ ํ•ฉ sum
    for(int i=0; i<v.size(); i++){
        sum += v[i];
    }

    return sum + n;
    
}

int main() {
    
    vector <int> value;
    
    //๋ฒกํ„ฐ value์—์„œ 1๋ถ€ํ„ฐ 10000๊นŒ์ง€ ์ˆ˜๋“ค์˜ d๊ฐ’๋“ค ์ €์žฅ
    for(int i=1; i<10001; i++){
        value.push_back(d(i));
    }
    
    for(int i=1; i<10001; i++){
        //value์— i๊ฐ€ ์žˆ๋‹ค๋ฉด i ์ถœ๋ ฅ
        if(find(value.begin(), value.end(), i) == value.end()){
            cout << i << "\n";
        }
    }
    
    return 0;
}

 

+)

์ฃผ์–ด์ง„ ์ˆซ์ž์˜ ๊ฐ ์ž๋ฆฌ ์ˆซ์ž๋Š”

[๐Ÿฅ‘ BOJ ๋‹จ๊ณ„๋ณ„๋กœ ํ’€์–ด๋ณด๊ธฐ/5๋‹จ๊ณ„ _ 1์ฐจ์›๋ฐฐ์—ด] - [C++][BOJ] ๋ฐฑ์ค€ 2577๋ฒˆ: ์ˆซ์ž์˜ ๊ฐœ์ˆ˜

 

[C++][BOJ] ๋ฐฑ์ค€ 2577๋ฒˆ: ์ˆซ์ž์˜ ๊ฐœ์ˆ˜

https://www.acmicpc.net/problem/2577 2577๋ฒˆ: ์ˆซ์ž์˜ ๊ฐœ์ˆ˜ ์ฒซ์งธ ์ค„์— A, ๋‘˜์งธ ์ค„์— B, ์…‹์งธ ์ค„์— C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. A, B, C๋Š” ๋ชจ๋‘ 100๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 1,000๋ณด๋‹ค ์ž‘์€ ์ž์—ฐ์ˆ˜์ด๋‹ค. www.acmicpc.net ๋ฌธ์ œ ์„ธ ๊ฐœ..

whkakrkr.tistory.com

์—์„œ ๊ตฌํ–ˆ๋˜ ๊ฒƒ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ตฌํ–ˆ๋‹ค

 

 

++)

while(num>0) {
	sum = num % 10
	num /= 10
}

ํ›จ์”ฌ ์‰ฌ์šด ์ฝ”๋“œ๊ฐ€ ์žˆ์—ˆ๋‹ค..

๋ฐ˜์‘ํ˜•