Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Flutter
- EC2
- 트러블슈팅
- 성능테스트
- java
- Spring
- 레디스
- redis
- 플러터
- backend
- github
- error
- 자바백엔드
- 로드밸런서
- AWS
- 백엔드
- 알고리즘
- 후기
- 데이터구조
- grafana
- 부트캠프
- 자바
- nGrinder
- MySQL
- 코딩테스트
- 도커
- 멘토링
- F-Lab
- FLAB
- 에프랩
Archives
- Today
- Total
민스씨의 일취일장
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 |
---|