엘리스 알고리즘 코드 챌린지 Day4(07월 11일) - Java

2024. 7. 11. 14:16·Web/Java
반응형

문제

나의 제출(오답)

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int N = Integer.parseInt(br.readLine());
        boolean[][] line = new boolean[N + 1][N + 1];

        for (int i = 1; i < N; i++) {
            StringTokenizer st = new StringTokenizer(br.readLine());
            int a = Integer.parseInt(st.nextToken());
            int b = Integer.parseInt(st.nextToken());
            line[a][b] = line[b][a] = true;
        }


        Queue<Game> queue = new LinkedList<>();
        for (int i = 1; i < N + 1; i++) {
            queue.offer(new Game(i, 1));
            int maxTurn = 0;

            while (!queue.isEmpty()) {
                Game game = queue.poll();

                for (int j = game.node; j < N + 1; j++) {
                    if (line[game.node][j]) {
                        queue.offer(new Game(j, game.turn + 1));
                    }
                }

                maxTurn = Math.max(maxTurn, game.turn);
            }

            bw.write(Integer.toString(maxTurn%2));
            bw.newLine();
        }

        bw.flush();
        bw.close();
    }
}

class Game {
    public int node;
    public int turn;

    public Game(int node, int turn) {
        this.node = node;
        this.turn = turn;
    }
}

공개 답안

import java.util.*;

class Main {
    static long n, a, b;
    static ArrayList<Long>[] v = new ArrayList[100050];
    static long[] dp = new long[100050];
    static final long inf = (long)1e12;

    static void dfs(long x, long par) {
        long ret = inf;
        for (Long nxt : v[(int)x]) {
            if (nxt == par) continue;
            dfs(nxt, x);
            ret = Math.min(ret, dp[nxt.intValue()]);
        }
        if (ret == inf) ret = 0;
        dp[(int)x] = x - ret;
    }

    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);  
        
        n=scanner.nextLong();
        
        for(int i=0;i<100050;i++)
            v[i]=new ArrayList<>();
            
        for(int i=1;i<n;i++){
            a=scanner.nextLong();
            b=scanner.nextLong();
            
            v[(int)a].add(b);
            v[(int)b].add(a);
        }
        
       dfs(1,0);
       
       for(int i=1;i<=n;i++){
           if(dp[i]>=0)
               System.out.println("1");
           else
               System.out.println("0");
       }
   } 
}
반응형
저작자표시 비영리 변경금지 (새창열림)

'Web > Java' 카테고리의 다른 글

엘리스 알고리즘 코드 챌린지 Day5(07월 12일) - Java  (0) 2024.07.12
엘리스 알고리즘 코드 챌린지 Day3(07월 10일) - Java  (0) 2024.07.10
엘리스 알고리즘 코드 챌린지 Day2(07월 09일) - Java  (0) 2024.07.09
엘리스 알고리즘 코드 챌린지 Day1(07월 08일) - Java  (1) 2024.07.08
'Web/Java' 카테고리의 다른 글
  • 엘리스 알고리즘 코드 챌린지 Day5(07월 12일) - Java
  • 엘리스 알고리즘 코드 챌린지 Day3(07월 10일) - Java
  • 엘리스 알고리즘 코드 챌린지 Day2(07월 09일) - Java
  • 엘리스 알고리즘 코드 챌린지 Day1(07월 08일) - Java
helperwoo
helperwoo
\ೕ( ・ㅂ・)و /
  • helperwoo
    WooLog
    helperwoo
  • 전체
    오늘
    어제
    • All (55)
      • Web (25)
        • PHP (6)
        • Java (5)
        • Javascript (8)
        • Laravel (2)
        • Spring Boot (0)
        • React.js (1)
        • Electron.js (1)
        • Vue.js (1)
        • Nest.js (1)
      • Mobile (2)
        • Flutter (2)
      • SQL (1)
        • MySQL (4)
      • Docker (6)
      • Server (7)
      • Git (2)
      • Tool (3)
      • AI (2)
      • Tip (3)
      • Log (0)
  • 블로그 메뉴

    • 링크

      • Github
    • 공지사항

    • 인기 글

    • 태그

      ignorecase
      ollama
      php
      dart
      챌린지
      apache
      nginx
      vscode
      CTE
      MYSQL
      http
      CLI
      with
      DB연동
      Compose
      image
      프로그래머스
      데이터베이스
      docker
      Laravel
      알고리즘
      엘리스
      frankenphp
      recursive
      deepseek
      websocket
      코드
      JavaScript
      git
      flutter
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    helperwoo
    엘리스 알고리즘 코드 챌린지 Day4(07월 11일) - Java
    상단으로

    티스토리툴바