[작년 문제 풀어보기] 5기 1주차 문제 - 5~7번

별의개발자커비·2023년 9월 5일
0

우테코 도전기

목록 보기
4/37
post-thumbnail

5번 문제

요구사항

과정

그디리 알고리즘 풀이 같았다!

6번 문제

요구사항

과정

처음에는 제시된 대로 list<list<String>로 받아 일단 구현했는데 리팩토링을 하다보니 list<list<String>get(index).get(0) 이런 식으로 name을 가져오는 것도 불편했고, name만 갖고 비교해서 나중에 해당 name을 갖고 email을 가져오는 반복문을 돌려야 하기도 해서 불편했다.

개선한 점

즉, list<list<String>으로 되어있어서 혼파망이다..
member 객체로 관리하게 리팩토링 해보자

회고

코드를 다 짜고 리팩토링 할 때, 인텔리제이의 extract method를 사용해봤는데 이게 오래 걸리게 한 주범이었던 것 같다. 리팩토링만 6시간^^

원래 방식은 다 짜진 코드를 갖고 내가 직접 굿노트에 이리 저리 묶어가며 하는 수동메소드추출(?) 방식이었는데, 어제 스터디원의 코드 리뷰 중 알려준 extract method 기능을 사용해보느라 이걸 썼더니 변수가 이리저리 섞이는 문제가 발생했다ㅎㅎ

뭐든 적당히 잘 쓰자..


7번 문제

요구사항

과정

생성한 객체 배열 정렬하기(Comparator)
Comparator, Lamda 사용하여 2차원 배열 정렬하기

알게된 점

  1. 다중조건정렬
RECOMMAND_LIST.sort(Comparator.comparing(User::getScore).reversed().thenComparing(User::getId));

보완할 점

listConverter의 역할의 범위를 고민해봐야할 것 같다.
listConverter의 역할이지만 같은 클래스 내의 함수가 쓰기 편한 이유로 메인클래스에 들어있는 메소드들도 있어서!

최종 PR 링크

0개의 댓글