GiantStepDEV

ํ•ด๋‹น ๋ฌธ์ œ๋Š” ๋ฐฑ์ค€ 1110๋ฒˆ ๋ฌธ์ œ์ด๊ณ , ๋ธ”๋กœ๊ทธ์—๋„ ์˜ฌ๋ ธ์—ˆ๋Š”๋ฐ ์˜ค๋Š˜ ๊ฐ•์‚ฌ๋‹˜๊ป˜์„œ ์ด ๋ฌธ์ œ๋ฅผ ๋‚ด์ฃผ์…”์„œ!

์˜ค๋žœ๋งŒ์— ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋” ํ’€๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

๋ธ”๋กœ๊ทธ์— ์˜ฌ๋ฆด๊นŒ ๋ง๊นŒ ํ–ˆ๋Š”๋ฐ, ๋‚˜๋ฆ„์˜ ๋˜ ์‹œํ–‰์ฐฉ์˜ค๊ฐ€ ์žˆ์–ด์„œ ๋ณต๊ธฐํ•˜๊ณ ์ž ์˜ฌ๋ ค๋ด…๋‹ˆ๋‹ค.


1. ๋ฌธ์ œ

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์˜ ์‚ฌ์ดํด์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

2. ์ž…๋ ฅ

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

3. ์ถœ๋ ฅ

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


์ฒซ ๋ฒˆ์งธ ์ฝ”๋“œ

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int cnt = 0;
        ArrayList<Character> numArr = new ArrayList<>();
        Scanner sc = new Scanner(System.in);
        String num = sc.next();
        for (int i = 0; i < num.length(); i++) {
            if (num.length() == 1) {
                for (int j = 0; j < 2; j++) {
                    numArr.add(0, '0');
                    numArr.add(1, num.charAt(i));
                    break;
                }
            } else numArr.add(num.charAt(i));
        }
        while(true) {
            int a = (int) (numArr.get(0) - '0');
            int b = (int) (numArr.get(1) - '0');
            int c = a + b;
            int d;
            if (c < 10) {
                d = (b * 10) + c;
            } else d = (b * 10) + (c % 10);
            numArr.clear();
            numArr.add((char) (d / 10 + (int) '0'));
            numArr.add((char) (d % 10 + (int) '0'));
            cnt++;
            if(((int)numArr.get(0) - '0') * 10 + ((int)numArr.get(1) - '0') % 10 ==
                    ((int)num.charAt(0) - '0') * 10 + ((int)num.charAt(1) - '0') % 10) break;
        }
        System.out.println(cnt);
    }
}

๐Ÿค ์ธ๊ฐ„์€ ์™œ ๋˜‘๊ฐ™์€ ์‹ค์ˆ˜๋ฅผ ํ•˜๋Š”๊ฑธ๊นŒ.

์ €๋ฒˆ์—๋„ String์œผ๋กœ ๋ฐ›์•„์„œ ๋ฌธ์ œ๋ฅผ ์–ด๋ ต๊ฒŒ ๊ผฌ๋”๋‹ˆ

์ด๋ฒˆ์— ๋˜ String์œผ๋กœ ๋ฐ›์•„์„œ ์ฝ”๋“œ๋ฅผ ๋”๋Ÿฝ๊ฒŒ ์งฐ๋‹ค. (์™€์ด๋ผ๋…ธ ์™€์ด๋ผ๋…ธ

๊ฐ€๋งŒํžˆ ์ง€์ผœ๋ณด๋‹ค๊ฐ€ ๊ตณ์ด ์ด๋Ÿด ํ•„์š”๊ฐ€ ์—†์–ด์„œ ๋Œ€ํญ ์ˆ˜์ •ํ–ˆ๋‹ค.

 

๋‘ ๋ฒˆ์งธ ์ฝ”๋“œ

import java.util.ArrayList;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        int cnt = 0;
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int tmp = num;
        int newNum;
        
        while(true) {
            newNum = ((num % 10) * 10) + ((num / 10 + num % 10) % 10);
            cnt++;
            num = newNum;
            if(newNum == tmp) break;
        }
        System.out.println(cnt);
    }
}

๐Ÿค“ ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ๊ฑด tmp์— num ๊ฐ’์„ ๋„ฃ์–ด์ค˜์•ผ while๋ฌธ ํƒˆ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
     (num์€ ๊ณ„์† ๊ฐ’์ด ๋ฐ”๋€Œ๋‹ˆ ์กฐ๊ฑด๋ฌธ์— num์œผ๋กœ ๋„ฃ์œผ๋ฉด ์˜์›ํžˆ ๋ชป ๋น ์ ธ ๋‚˜์˜ด!)

profile

GiantStepDEV

@kongmi

ํฌ์ŠคํŒ…์ด ์ข‹์•˜๋‹ค๋ฉด "์ข‹์•„์š”โค๏ธ" ๋˜๋Š” "๊ตฌ๋…๐Ÿ‘๐Ÿป" ํ•ด์ฃผ์„ธ์š”!