์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step4] 1110 : ๋”ํ•˜๊ธฐ ์‚ฌ์ดํด (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 8. 21:36

www.acmicpc.net/problem/1110

 

1110๋ฒˆ: ๋”ํ•˜๊ธฐ ์‚ฌ์ดํด

0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 99๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ •์ˆ˜๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ฐ์‚ฐ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋จผ์ € ์ฃผ์–ด์ง„ ์ˆ˜๊ฐ€ 10๋ณด๋‹ค ์ž‘๋‹ค๋ฉด ์•ž์— 0์„ ๋ถ™์—ฌ ๋‘ ์ž๋ฆฌ ์ˆ˜๋กœ ๋งŒ๋“ค๊ณ , ๊ฐ ์ž๋ฆฌ์˜ ์ˆซ์ž๋ฅผ ๋”ํ•œ๋‹ค. ๊ทธ ๋‹ค์Œ,

www.acmicpc.net


๋ฌธ์ œ

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์˜ ์‚ฌ์ดํด ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ 1

26

 

์˜ˆ์ œ ์ถœ๋ ฅ 2

4

 

์˜ˆ์ œ ์ž…๋ ฅ 2

55

 

์˜ˆ์ œ ์ถœ๋ ฅ 2

3

 

์˜ˆ์ œ ์ž…๋ ฅ 3

1

 

์˜ˆ์ œ ์ถœ๋ ฅ 3

60

 

์˜ˆ์ œ ์ž…๋ ฅ 4

0

 

์˜ˆ์ œ ์ถœ๋ ฅ 4

1


ํ’€์ด

1. ์ž…๋ ฅ๊ฐ’ num์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค.

2. ์ž…๋ ฅ๊ฐ’์ด ํ•œ ์ž๋ฆฌ ์ˆ˜ ์ผ ๋•Œ

   2-1. 0์„ ๋ถ™์—ฌ ๋‘ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  ๋‘ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋”ํ•œ๋‹ค

   2-2. ๋‘ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋”ํ•˜๊ธฐ ์ „ ์ˆ˜์˜ ์ผ์˜ ์ž๋ฆฌ ์ˆ˜์™€ ๋‘ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋”ํ•œ ํ›„ ์ผ์˜ ์ž๋ฆฌ ์ˆ˜๋ฅผ ํ•ฉํ•ด ์ƒˆ๋กœ์šด ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค

           = ์ž…๋ ฅ๋ฐ›์€ ํ•œ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋‘๋ฒˆ ์—ฐ์†ํ•œ ์ˆ˜ : input * 10 + input

3. ์ž…๋ ฅ๊ฐ’์ด ๋‘ ์ž๋ฆฌ ์ˆ˜ ์ผ ๋•Œ

   3-1. ์ž…๋ ฅ๊ฐ’์˜ ์ผ์˜ ์ž๋ฆฌ ์ˆ˜์™€ ์ž…๋ ฅ๊ฐ’์˜ ๊ฐ ์ž๋ฆฌ์ˆ˜๋ฅผ ๋”ํ•œ ๊ฐ’์˜ ์ผ์˜ ์ž๋ฆฌ ์ˆ˜๋ฅผ ํ•ฉํ•ด ์ƒˆ๋กœ์šด ์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค

           : ( input % 10 ) * 10 + ( (( input / 10 ) + ( input % 10 ) ) % 10 )

4. ๋ฌดํ•œ๋ฃจํ”„๋ฅผ ์ž‘์„ฑ. 2,3๋ฒˆ์„ ํฌํ•จํ•œ if๋ฌธ์„ ๋งŒ๋“ค๊ณ  if๋ฌธ์„ ํ†ต๊ณผํ•œ ํ›„ count++ (์‹ธ์ดํด 1ํšŒ)

5. ์ƒˆ๋กœ์šด ์ˆ˜๊ฐ€ ๊ธฐ์กด๊ฐ’ num๊ณผ ๊ฐ™์€์ง€ ๊ฒ€์‚ฌ. ๊ฐ™์œผ๋ฉด while๋ฌธ์„ ํƒˆ์ถœํ•˜๊ณ  count๋ฅผ ์ถœ๋ ฅ. ๋‹ค๋ฅด๋ฉด ์ƒˆ๋กœ์šด ์ˆ˜๋กœ ๋‹ค์‹œ ๊ณ„์‚ฐ.

 

 

import java.io.*;
import java.util.Scanner;

public class B1110 {
	
	public static void main(String[] args) throws IOException {
		
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt(); // ์ž…๋ ฅ๊ฐ’
		int count = 0; // ํšŸ์ˆ˜ ์„ธ๋Š” ์นด์šดํŠธ
		int result;
		
		int input = num;
		
		while(true) {
			if(input < 10) { // ํ•œ์ž๋ฆฌ์ˆ˜์ผ๋•Œ
				result = input * 10 + input; 
                // 0 ๋ถ™์ธ ํ›„ ๋‘๋ฒˆ์งธ์ž๋ฆฌ์™€ ๊ฐ ์ž๋ฆฌ์ˆ˜ ๋”ํ•œ ๊ฒฐ๊ณผ๊ฐ’์˜ ๋‘๋ฒˆ์งธ์ž๋ฆฌ ํ•ฉ์นœ ๊ฒฐ๊ณผ
			} else {
				result = (input % 10) * 10 + (((input / 10) + (input % 10)) % 10);
				// ๊ฒฐ๊ณผ = ์ฒซ ์ž…๋ ฅ๊ฐ’ ๋‘๋ฒˆ์งธ์ž๋ฆฌ, ๋‘ ์ž๋ฆฌ์ˆ˜ ๋”ํ•œ ๊ฐ’ ๋‘๋ฒˆ์งธ์ž๋ฆฌ ํ•ฉ์นœ ๊ฒฐ๊ณผ
				// ์ฒซ ์ž…๋ ฅ๊ฐ’ ๋‘๋ฒˆ์งธ์ž๋ฆฌ = ์ž…๋ ฅ๊ฐ’ % 10
				// ๋‘ ์ž๋ฆฌ์ˆ˜ ๋”ํ•œ ๊ฐ’ ๋‘๋ฒˆ์งธ์ž๋ฆฌ = ( ์ž…๋ ฅ๊ฐ’ / 10 + ์ž…๋ ฅ๊ฐ’ % 10 ) % 10
			}
			count++;
			if(num == result) {
				System.out.println(count);
				return;
			} else {
				input = result;
			}
		}
	}

}