Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

전공공부

[BOJ_20364] 부동산 다툼 본문

Study/Problem Solving

[BOJ_20364] 부동산 다툼

monitor 2023. 12. 31. 08:00

설명


반대로 내가 찾아야 하는 곳에서 트리를 올라간다고 생각하고 방문 여부를 차차 검색하면 쉽게 풀 수 있는 문제였다. 처음에 트리를 구현해서 탐색하는 생각으로 접근 했다가는 뭔가 이상한듯 하여서 다른 풀이들을 참고 하였는데 굉장히 쉬운 방법이 이렇게 있었다.

 

코드


package tree;

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

public class BOJ_20364 {
    public static void main(String[] args) throws Exception{
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer tk = new StringTokenizer(in.readLine()," ");
        int N = Integer.parseInt(tk.nextToken()); 
        int Q = Integer.parseInt(tk.nextToken()); 

        int[] duck = new int[Q];
        for (int i = 0; i < Q; i++) {
            tk = new StringTokenizer(in.readLine()," ");
            duck[i] = Integer.parseInt(tk.nextToken());
        }
        solution(duck, N);
    }

    private static void solution(int[] duck,int N) {
        boolean[] visited = new boolean[N + 1];

        for (int x : duck){
            int ans = 0;
            int tmp = x;
            while (x != 1){
                if(visited[x]) ans = x;
                x /= 2; //이진 트리
            }
            visited[tmp] = true;
            System.out.println(ans);
        }
    }

}

 

 

20364번: 부동산 다툼

첫 번째 줄에 땅 개수 N과 꽉꽉나라에 사는 오리 수 Q가 공백으로 구분되어 주어진다. (2 ≤ N < 220, 1 ≤ Q ≤ 200,000) 두 번째 줄부터 차례로 Q개의 줄에 걸쳐 i+1번째 줄에는 i번째 오리가 원하

www.acmicpc.net

 

'Study > Problem Solving' 카테고리의 다른 글

[BOJ_22945] 팀 빌딩  (2) 2024.01.05
[BOJ_14940] 쉬운 최단거리  (2) 2024.01.05
[BOJ_4256] 트리  (1) 2023.12.28
[BOJ_9489] 사촌  (0) 2023.12.25
[BOJ_3584] 가장 가까운 공통 조상  (0) 2023.12.24