๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[๋ฐฑ์ค€] 1057๋ฒˆ: ํ† ๋„ˆ๋จผํŠธ(๊ตฌํ˜„, ์ˆ˜ํ•™)

by ์ฃผ๋ฐœ2 2020. 3. 12.
๋ฐ˜์‘ํ˜•

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

 

1057๋ฒˆ: ํ† ๋„ˆ๋จผํŠธ

๊น€์ง€๋ฏผ์€ N๋ช…์ด ์ฐธ๊ฐ€ํ•˜๋Š” ์Šคํƒ€ ํ† ๋„ˆ๋จผํŠธ์— ์ง„์ถœํ–ˆ๋‹ค. ํ† ๋„ˆ๋จผํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง„ํ–‰๋œ๋‹ค. ์ผ๋‹จ N๋ช…์˜ ์ฐธ๊ฐ€์ž๋Š” ๋ฒˆํ˜ธ๊ฐ€ 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ ๋ฐฐ์ •๋ฐ›๋Š”๋‹ค. ๊ทธ๋Ÿฌ๊ณ  ๋‚œ ํ›„์— ์„œ๋กœ ์ธ์ ‘ํ•œ ๋ฒˆํ˜ธ๋ผ๋ฆฌ ์Šคํƒ€๋ฅผ ํ•œ๋‹ค. ์ด๊ธด ์‚ฌ๋žŒ์€ ๋‹ค์Œ ๋ผ์šด๋“œ์— ์ง„์ถœํ•˜๊ณ , ์ง„ ์‚ฌ๋žŒ์€ ๊ทธ ๋ผ์šด๋“œ์—์„œ ๋–จ์–ด์ง„๋‹ค. ๋งŒ์•ฝ ๊ทธ ๋ผ์šด๋“œ์˜ ์ฐธ๊ฐ€์ž๊ฐ€ ํ™€์ˆ˜๋ช…์ด๋ผ๋ฉด, ๋งˆ์ง€๋ง‰ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง„ ์ฐธ๊ฐ€์ž๋Š” ๋‹ค์Œ ๋ผ์šด๋“œ๋กœ ์ž๋™ ์ง„์ถœํ•œ๋‹ค. ๋‹ค์Œ ๋ผ์šด๋“œ์—์„  ๋‹ค์‹œ ์ฐธ๊ฐ€์ž์˜ ๋ฒˆํ˜ธ๋ฅผ 1๋ฒˆ๋ถ€ํ„ฐ ๋งค๊ธด๋‹ค. ์ด๋•Œ, ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ธฐ๋Š” ์ˆœ์„œ๋Š” ์ฒ˜์Œ

www.acmicpc.net

์ฝ”๋“œ

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int N = scan.nextInt();	// ์ฐธ๊ฐ€์ž ์ˆ˜
		int Kim = scan.nextInt();	// ๊น€์ง€๋ฏผ ๋ฒˆํ˜ธ
		int Lim = scan.nextInt();	// ์ž„ํ•œ์ˆ˜ ๋ฒˆํ˜ธ
		int count = 0;
		
		while(Kim != Lim) {
			Kim = (Kim + 1) / 2;
			Lim = (Lim + 1) / 2;
			count  ++;
		}
		System.out.println(count);
		scan.close();
	}

}

ํ’€์ด

๊ฐˆํ”ผ๋ฅผ ๋ชป์žก๊ฒ ์–ด์„œ ํƒ€ ๋ธ”๋กœ๊ทธ๋“ค์„ ์ฐธ๊ณ ํ–ˆ๋‹ค.

https://nackwon.tistory.com/40

 

๋ฌธ์ œ์˜ ์œ— ๋ถ€๋ถ„์ด ํ•ต์‹ฌ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ๊น€์ง€๋ฏผ๊ณผ ์ž„ํ•œ์ˆ˜๋Š” ํ•ญ์ƒ ์ด๊ธฐ๊ณ , ์ฐธ๊ฐ€์ž์˜ ๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜์”ฉ ์ค„์—ฌ๋‚˜๊ฐ€๋Š”๋ฐ ๋งŒ๋‚ ๋•Œ๊นŒ์ง€ ํ† ๋„ˆ๋จผํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ , ๋งŒ๋‚ ๋•Œ ๊ฒฝ๊ธฐ๋ฅผ ์น˜๋ฃฌ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•ด์•ผ ํ•œ๋‹ค.

๋งŒ๋‚˜๋Š” ๊ฒฝ์šฐ๋Š” ์œ„ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ, ๋‘ ์„ ์ˆ˜์˜ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์•„์งˆ๋•Œ ์ด๋‹ค.

 

๋‘ ์„ ์ˆ˜์˜ ๋ฒˆํ˜ธ์— 1์„ ๋”ํ•ด์ฃผ๋Š” ๊ฒฝ์šฐ๋Š” ํ™€์ˆ˜์˜ ๊ฒฝ์šฐ๋„ ์ƒ๊ฐํ•ด์„œ์ด๋‹ค.

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€