99클럽 코테 스터디 30일차 TIL
💙 JAVA 비기너
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
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());
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());
PriorityQueue<Integer> sejun = new PriorityQueue<>();
PriorityQueue<Integer> sebi = new PriorityQueue<>();
StringTokenizer sejunSoldiers = new StringTokenizer(br.readLine());
for(int j=0; j<N; j++) {
sejun.add(Integer.parseInt(sejunSoldiers.nextToken()));
}
StringTokenizer sebiSoldiers = new StringTokenizer(br.readLine());
for(int j=0; j<M; j++) {
sebi.add(Integer.parseInt(sebiSoldiers.nextToken()));
}
while(!sejun.isEmpty() && !sebi.isEmpty()) {
int sejunSoldier = sejun.peek();
int sebiSoldier = sebi.peek();
if(sejunSoldier < sebiSoldier) sejun.poll();
else sebi.poll();
}
bw.write((sejun.isEmpty() ? "B\n" : "S\n"));
}
br.close();
bw.flush();
bw.close();
}
}
회식을 끝내고 하는 공부란 아주 산뜻하다...🤤
세준과 세비의 병사들을 각각의 우선순위 큐 sejun
, sebi
에 넣어주고 오름차순으로 정렬이 되었을테니 하나씩 꺼내서 값을 비교해주면 된다.
세준의 병사가 세비의 병사보다 힘이 낮다면 세준의 병사큐인 sejun
에서 요소를 하나 제거해주고 둘이 같거나 세비의 병사가 더 힘이 낮다면 sebi
에서 하나의 요소를 제거해줬다.
sejun
와 sebi
둘 중 하나라도 비게 된다면 온라인 게임이 종료되므로 while문의 조건은 둘 다 비어있지 않는 조건으로 해줬다.
❓ 둘다 아닐 경우에는 C를 출력하라고 적혀있는데 이런 경우가 있나...?
일단 제출해보자!!
했는데 다행히 무사통과.
헷갈리게 만드려고 넣은건가 싶다.
입력을 받을 때 예제입력에서 테스트 케이스 사이에 빈칸을 입력하는 것이 있어서 테스트 케이스 시작 시 br.readLine();
을 통해 에러가 나지 않도록 해줬다.