๐Ÿงฉ Algorithm/[BOJ] Bronze

BOJ 1110๋ฒˆ : ๋”ํ•˜๊ธฐ ์‚ฌ์ดํด (C์–ธ์–ด/Bronze 1)

devCloud 2022. 6. 26. 12:48
728x90

์ด๋ฏธ์ง€ ํด๋ฆญ ์‹œ ํ•ด๋‹น ๋ฌธ์ œ๋กœ ์ด๋™


๋ฌธ์ œ
0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 99๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋จผ์ € ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 10๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์•ž์— 0์„ ๋ถ™์—ฌ ๋‘ ์ž๋ฆฌ ์ˆ˜๋กœ ๋งŒ๋“ค๊ณ , ๊ฐ ์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ ๋”ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ, ์ฃผ์–ด์ง„ ์ˆ˜์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์ž๋ฆฌ ์ˆ˜์™€ ์•ž์—์„œ ๊ตฌํ•œ ํ•ฉ์˜ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์ž๋ฆฌ ์ˆ˜๋ฅผ ์ด์–ด ๋ถ™์ด๋ฉด ์ƒˆ๋กœ์šด ์ˆ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋‹ค์Œ ์˜ˆ๋ฅผ ๋ณด์ž.
26๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค. 2+6 = 8์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 68์ด๋‹ค. 6+8 = 14์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 84์ด๋‹ค. 8+4 = 12์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 42์ด๋‹ค. 4+2 = 6์ด๋‹ค. ์ƒˆ๋กœ์šด ์ˆ˜๋Š” 26์ด๋‹ค.
์œ„์˜ ์˜ˆ๋Š” 4๋ฒˆ๋งŒ์— ์›๋ž˜ ์ˆ˜๋กœ ๋Œ์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ 26์˜ ์‚ฌ์ดํด์˜ ๊ธธ์ด๋Š” 4์ด๋‹ค. N์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, N์˜ ์‚ฌ์ดํด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ
์ฒซ์งธ ์ค„์— N์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 99๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜์ด๋‹ค.

์ถœ๋ ฅ
์ฒซ์งธ ์ค„์— N์˜ ์‚ฌ์ดํด ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 


์˜ˆ์ œ ์ž…๋ ฅ

55

์˜ˆ์ œ ์ถœ๋ ฅ

3

๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ œ ํ’€์ด

  1. ์ž…๋ ฅ ๋ณ€์ˆ˜ N์„ ์ƒˆ๋กœ์šด ๋ณ€์ˆ˜(new_N)์— ์ €์žฅํ•œ๋‹ค.
  2. ๋ฌดํ•œ ๋ฐ˜๋ณต์„ ํ•ด์ค€๋‹ค.
    1) count๋ฅผ ์‹œ์ผœ์ค€๋‹ค.
    2) ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•ด์„œ ๊ฐ๊ฐ ์ƒˆ ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค. ๋ชซ์€ 10์ž๋ฆฌ, ๋‚˜๋จธ์ง€๋Š” 1์ž๋ฆฟ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
    3) ๊ตฌํ•œ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ๋”ํ•ด์„œ ์ƒˆ ๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.
    4) 1๋ฒˆ์—์„œ ๊ตฌํ•œ 1์ž๋ฆฟ์ˆ˜(๋‚˜๋จธ์ง€)์™€ 2๋ฒˆ์—์„œ ๊ตฌํ•œ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ๋”ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์กฐํ•ฉํ•œ๋‹ค.
    5) ์กฐํ•ฉํ•œ ๊ฒฐ๊ณผ๊ฐ€ ์ž…๋ ฅ๊ฐ’ N๊ณผ ๋งž๋Š”์ง€ ํ™•์ธํ•œ๋‹ค. ๋งž์œผ๋ฉด while๋ฌธ์„ ์ข…๋ฃŒํ•œ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์œ„ ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•œ๋‹ค.
  3. count๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

Solution

#include <stdio.h>

int main() {
    int N, count = 0;
    scanf("%d",&N);
    int new_N = N;
    
    while(1){
        count++;
        int q = new_N / 10;
        int r = new_N % 10;
        int plus = q + r;
        new_N = 10*r + plus%10;
        
        if(new_N == N){
            break;
        }
    }
    printf("%d", count);
    
    return 0;
}
728x90