99클럽 코테 스터디 30일차 TIL - 백준(세준세비)(java)

Gaeng·2024년 11월 26일
post-thumbnail

세준세비 문제링크

문제 풀이

처음에 PrioryQueue로 풀었는데, 계속 10몇프로에서 계속 틀렸다고 하는데, 왜 틀린지를 모르겠다.
그냥 최대값으로 비교하는 것으로 풀면 답이 해결 된다.
혹시 왜 틀렸는지 아시는 분은 댓글로 알려주시면 감사하겠습니다. 굉장히 간단한데, 계속 오류가 떠서 당황했습니다.

정답 된 답

import java.io.*;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.StringTokenizer;

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 T = Integer.parseInt(br.readLine()); // 테스트 케이스 갯수
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < T; i++) {
            br.readLine();
            StringTokenizer st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int M = Integer.parseInt(st.nextToken());
            int sejunMax = Integer.MIN_VALUE;
            int sebiMax = Integer.MIN_VALUE;

            StringTokenizer st1 = new StringTokenizer(br.readLine());
            for (int j = 0; j < N; j++) {
                sejunMax = Math.max(sejunMax, Integer.parseInt(st1.nextToken()));
            }

            StringTokenizer st2 = new StringTokenizer(br.readLine());
            for (int j = 0; j < M; j++) {
                sebiMax = Math.max(sebiMax, Integer.parseInt(st2.nextToken()));
            }

            if (sejunMax < sebiMax) {
                System.out.println("B");
            } else {
                System.out.println("S");
            }
        }
    }
}

틀렸단 코드

import java.io.*;
import java.util.Collections;
import java.util.PriorityQueue;
import java.util.StringTokenizer;

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 T = Integer.parseInt(br.readLine()); // 테스트 케이스 갯수
        PriorityQueue<Long> sejun = new PriorityQueue(Collections.reverseOrder());
        PriorityQueue<Long> sebi = new PriorityQueue(Collections.reverseOrder());
        StringBuilder sb = new StringBuilder();

        for (int i = 0; i < T; i++) {
            br.readLine();
            StringTokenizer st = new StringTokenizer(br.readLine());
            int N = Integer.parseInt(st.nextToken());
            int M = Integer.parseInt(st.nextToken());

            StringTokenizer st1 = new StringTokenizer(br.readLine());
            for (int j = 0; j < N; j++) {
                sejun.add(Long.parseLong(st1.nextToken()));
            }

            StringTokenizer st2 = new StringTokenizer(br.readLine());
            for (int j = 0; j < M; j++) {
                sebi.add(Long.parseLong(st2.nextToken()));
            }

            if (sebi.peek() > sejun.peek()) {
                System.out.println("B");
            } else {
                System.out.println("S");
            }
        }
    }
}
profile
문제를 해결하면서 나온 문제를 기록하는 노트

0개의 댓글