Notice
Recent Posts
Recent Comments
Link
민스씨의 일취일장
Code Clinic | 백준 1524 코드 리뷰 본문
반응형
백준 1524를 해결하기 위해 작성한 코드를 리팩토링하는 글입니다.
코드 클리닉 - 백준 1524 코드 리뷰
작성한 코드
처음에 작성한 로직이다. Queue를 사용할 때 poll()만 사용한 한계가 엿보인다. 로직이 다소 복잡해, 어떤 걸 표현하고 싶은지 직관적으로 이해가 잘 안간다.
private static String play(PriorityQueue<Integer> A, PriorityQueue<Integer> B){
int a = A.poll();
int b = B.poll();
while(!A.isEmpty() && !B.isEmpty()){
if (a >= b) {
b = B.poll();
} else {
a = A.poll();
}
}
if(A.size() == B.size()){
return a>=b ? "S\n" : "B\n";
} else {
return A.isEmpty() ? "B\n" :"S\n";
}
}
개선 1
가독성을 높이고, peek()으로 Queue 자료형의 특징을 한 층 더 잘활용하였다. 그리고 자료 반환 부분 로직을 좀 더 간결하게 표현할 수 있게 되었다. 뿐만 아니라, 로직을 이용해서 어떤 것을 표현하고 싶은지 이해하기 쉬워졌다.
private static String play(PriorityQueue<Integer> A, PriorityQueue<Integer> B){
while(!A.isEmpty() && !B.isEmpty()){
int a = A.peek();
int b = B.peek();
if (a >= b) {
B.poll();
} else {
A.poll();
}
}
return A.isEmpty() ? "B\n" : "S\n";
}
728x90
반응형
'Code Clinic' 카테고리의 다른 글
Code Clinic | 백준 31217 코드 리뷰 (2) | 2024.11.05 |
---|