13549. 숨바꼭질3 (Java)

2023. 10. 17. 23:32·Algorithm & Data Structures/BOJ

단순 BFS 문제였다. *2를 할때는 cnt를 증가시키지않고 푸는것이 핵심

package Boj;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class Main {    
 
    static int min = Integer.MAX_VALUE;
    static int n, k;
    static boolean[] visited;
    static int max = 100000;
    
    public static class Node {
        int x;
        int time;
        
        public Node(int x, int time) {
            this.x = x;
            this.time = time;
        }
    }

    public static void bfs() {
        Queue<Node> q = new LinkedList<>();
        q.offer(new Node(n, 0));
        
        while(!q.isEmpty()) {
            Node node = q.poll();
            visited[node.x] = true;
            if(node.x == k) min = Math.min(min, node.time);
            
            if(node.x * 2 <= max && visited[node.x * 2] == false) q.offer(new Node(node.x * 2, node.time));
            if(node.x + 1 <= max && visited[node.x + 1] == false) q.offer(new Node(node.x + 1, node.time + 1));
            if(node.x - 1 >= 0 && visited[node.x - 1] == false) q.offer(new Node(node.x - 1, node.time + 1));
        }
    }

    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());
        
        visited = new boolean[max + 1];
        bfs();
        System.out.println(min);
    } 
}

'Algorithm & Data Structures > BOJ' 카테고리의 다른 글

1446. 지름길 (Java)  (1) 2023.10.21
1916. 최소비용구하기 (Java)  (1) 2023.10.20
2206. 벽부수고 이동하기 (Java)  (0) 2023.10.16
11404. 플로이드 (Java)  (0) 2023.10.12
9465. 스티커 (Java)  (1) 2023.10.12
'Algorithm & Data Structures/BOJ' 카테고리의 다른 글
  • 1446. 지름길 (Java)
  • 1916. 최소비용구하기 (Java)
  • 2206. 벽부수고 이동하기 (Java)
  • 11404. 플로이드 (Java)
Geisha
Geisha
개발 일기
  • Geisha
    Geisha
    Geisha
  • 전체
    오늘
    어제
    • 분류 전체보기 (316)
      • Algorithm & Data Structures (238)
        • BOJ (96)
        • SWEA (1)
        • Programers (137)
        • Data Structures (3)
      • DB (25)
        • SQL (19)
        • RDBMS (2)
      • Java (1)
        • Class (1)
      • Spring (5)
        • Spring MVC (1)
        • Annotations (1)
      • CS (36)
        • 운영체제 (13)
        • 네트워크 (5)
      • Tool (6)
        • Git (5)
        • AWS (1)
      • Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    algorithm
    구현
    투포인터
    dp
    baekjoon
    프로그래머스
    PriorityQueue
    백트래킹
    알고리즘
    Dijkstra
    DynamicProgramming
    후위순회
    Stack
    다익스트라
    동적계획법
    스택
    골드
    programmers
    이분탐색
    경로압축
    binarySearch
    Java
    BFS
    unionfind
    전위순회
    유니온파인드
    SQL
    dfs
    Union-Find
    백준
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
Geisha
13549. 숨바꼭질3 (Java)
상단으로

티스토리툴바