[๋ฌธ์ œํ’€์ด] ๋ฐฑ์ค€ 1697 ์ˆจ๋ฐ”๊ผญ์งˆ

2025. 2. 13. 22:07ยท์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•™์Šต

 

 

 

์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ์•ˆ ํ’€๋ฉด ๊นŒ๋จน๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

BFS/DFS๋Š” ๋‹ค๋ฅธ ์œ ํ˜•์— ๋น„ํ•ด ๋งŽ์ด ํ’€์–ด๋ดค์–ด์„œ ์†์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์„๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ

ํ•œ ๋ฒˆ์— ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. ^-^ ๋จธ์“ฑ

 

 

๋ฐฑ์ค€ 1697 ์ˆจ๋ฐ”๊ผญ์งˆ ๋ฌธ์ œ

์ˆ˜๋นˆ์ด๊ฐ€ ๋™์ƒ์„ ์ฐพ๊ธฐ ์œ„ํ•ด์„œ ํŠน์ • ์ด๋™ ์กฐ๊ฑด์— ๋งž์ถฐ ํƒ์ƒ‰ํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

์ „ํ˜•์ ์ธ BFS ๋ฌธ์ œ์ธ ๋“ฏ ํ•˜๋‹ค.

 

< ์ด๋™ ์กฐ๊ฑด >

  • X - 1
  • X + 1
  • 2 * X

์ด๋™ ์กฐ๊ฑด์ด ๊ทœ์น™์ ์ด๋ฏ€๋กœ ํƒ์ƒ‰ ์œ„์น˜๊ฐ€ ๋ฐ˜๋ณต๋  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ฒ˜์Œ์— ๋ฐฉ๋ฌธ์ฒดํฌ๋ฅผ ๋นผ๋จน์€ ์ด์œ ๋Š”…..!

๊ทธ๋ƒฅ ์ž˜๋ชป ์ƒ๊ฐํ–ˆ๋‹ค.

์„ค๋ช…ํ•˜๊ธฐ๋„ ์–ด๋ ต๊ฒŒ ์ƒ๊ฐ์˜ ์˜ค๋ฅ˜๋ฅผ ๋ฒ”ํ•ด์„œ ์ ๊ธฐ๊ฐ€ ์–ด๋ ต๋‹ค..

๊ฒฐ๋ก ์€

ํŠน์ • ์ง€์ ์— ๋„์ฐฉํ–ˆ์„ ๋•Œ, ๊ทธ ์ง€์ ์—์„œ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒฝ์šฐ์˜ ์ˆ˜(3๊ฐ€์ง€ ์ด๋™ ์กฐ๊ฑด)๋Š” ํ•œ ๋ฒˆ์— ํ์— ๋„ฃ์–ด์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋‚˜์•„๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๋ฒˆ ๋ฐฉ๋ฌธํ•œ ๊ณณ์— ๋‹ค์‹œ ๋Œ์•„์˜ฌ ํ•„์š”๊ฐ€ ์—†๋‹ค.

ํŠนํžˆ, ์ด ๋ฌธ์ œ๋Š” ์กฐ๊ฑด์ด X-1 ๊ณผ X+1 ์ด๋ผ์„œ ํ•œ ๋‹จ๊ณ„๋งŒ์—๋„ ๋ฐ˜๋ณต ๋ฐฉ๋ฌธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

์˜ˆ) 5์—์„œ X-1 ์กฐ๊ฑด์œผ๋กœ ์ด๋™ํ•˜์—ฌ 4๋กœ ๊ฐ”๊ณ , 4์—์„œ X+1 ์กฐ๊ฑด์œผ๋กœ ์›€์ง์ด๋ฉด 5

๋ถˆํ•„์š”ํ•œ ํƒ์ƒ‰์ด๋ž„๊นŒ..?

์•„๋ฌดํŠผ ๋ฐฉ๋ฌธ์ฒดํฌ ๋„ฃ์–ด์„œ ์„ฑ๊ณตํ–ˆ๋‹ค.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class Main { // BOJ_1697_์ˆจ๋ฐ”๊ผญ์งˆ

    static int n, k;
    static boolean[] visit = new boolean[100001];

    public static void main(String[] args) throws IOException {
        BufferedReader br  = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        n = Integer.parseInt(st.nextToken()); // ์ˆ˜๋นˆ
        k = Integer.parseInt(st.nextToken()); // ๋™์ƒ

        bfs();
    }

    private static void bfs(){
        ArrayDeque<int[]> que = new ArrayDeque<>();
        que.offer(new int[] {n, 0});

        while (!que.isEmpty()){
            int[] tmp = que.poll();
            int cl = tmp[0]; //ํ˜„์žฌ ์œ„์น˜
            int ct = tmp[1]; //ํ˜„์žฌ ์‹œ๊ฐ„
            visit[cl] = true;

            if (cl == k){
                System.out.println(ct);
                break;
            }

            if (valid(cl-1)) {
                que.offer(new int[] {cl-1, ct+1});
            }
            if (valid(cl+1)) {
                que.offer(new int[] {cl+1, ct+1});
            }
            if (valid(cl*2)) {
                que.offer(new int[] {cl*2, ct+1});
            }
        }
    }

    private static boolean valid(int n){
        if(n < 0 || n > 100000 || visit[n]){
            return false;
        }
        return true;
    }
}

 

๊นจ๋‹ฌ์€ ์ 

์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข€ ๊พธ์ค€ํžˆ ํ’€์ž~^-^

 

 

์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•™์Šต' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_Lv3 ์ž…๊ตญ ์‹ฌ์‚ฌ ํ’€์ด ๋ณต๊ธฐ  (0) 2025.04.12
[๋ฌธ์ œํ’€์ด] ๋ฐฑ์ค€ 5427 ๋ถˆ  (1) 2025.02.14
[๋ฌธ์ œ ํ’€์ด] SWEA 4615. ์žฌ๋ฏธ์žˆ๋Š” ์˜ค์…€๋กœ ๊ฒŒ์ž„  (0) 2024.08.12
[๋ฌธ์ œ ํ’€์ด] ํ–‰๋ณตํ•œ ์ˆ˜์—ด์˜ ๊ฐœ์ˆ˜ (feat. ์ฝ”๋“œํŠธ๋ฆฌ ์กฐ๋ณ„๊ณผ์ œ : 4์ฃผ์ฐจ)  (3) 2024.08.11
[์ด๋ก ] ๋ฐฐ์—ด (feat. ์ฝ”๋“œํŠธ๋ฆฌ ์กฐ๋ณ„๊ณผ์ œ : 3์ฃผ์ฐจ)  (1) 2024.08.04
'์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•™์Šต' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_Lv3 ์ž…๊ตญ ์‹ฌ์‚ฌ ํ’€์ด ๋ณต๊ธฐ
  • [๋ฌธ์ œํ’€์ด] ๋ฐฑ์ค€ 5427 ๋ถˆ
  • [๋ฌธ์ œ ํ’€์ด] SWEA 4615. ์žฌ๋ฏธ์žˆ๋Š” ์˜ค์…€๋กœ ๊ฒŒ์ž„
  • [๋ฌธ์ œ ํ’€์ด] ํ–‰๋ณตํ•œ ์ˆ˜์—ด์˜ ๊ฐœ์ˆ˜ (feat. ์ฝ”๋“œํŠธ๋ฆฌ ์กฐ๋ณ„๊ณผ์ œ : 4์ฃผ์ฐจ)
bamDal
bamDal
๊ด€์‹ฌ์žˆ๋Š” ๋ถ„์•ผ ๊ณต๋ถ€ํ•˜๋Š” ๋ธ”๋กœ๊ทธ.....๐ŸŒ™๐ŸŒฐ
  • bamDal
    ๐ŸŒ™๐ŸŒฐ๋‹ฌ๋ฐค์— ์ฝ”๋”ฉ
    bamDal
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ
      • TIL
      • Back-End
        • JAVA
        • SPRING
        • ํŒŒ์ด์ฌ
        • Linux
      • DataBase
        • MariaDB
      • CS
        • ์ž๋ฃŒ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜
      • Infra
      • Tool
        • Git
        • IntelliJ
      • Etc
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•™์Šต
      • Front-End
        • jQuery
        • AJAX
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ์นดํ…Œ๊ณ ๋ฆฌ
    • ํƒœ๊ทธ
  • ๋งํฌ

    • Github
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
bamDal
[๋ฌธ์ œํ’€์ด] ๋ฐฑ์ค€ 1697 ์ˆจ๋ฐ”๊ผญ์งˆ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”