2023/09 2

860. Lemonade Change

문제 레모네이드의 가격은 $5입니다. 손님들은 $5, $10, $20을 낼 수가 있는데, $5보다 큰 금액을 내면은 정확한 거스름돈을 줘야합니다. 여기서 명심해야 할 것은 처음에 가지고 있는 거스름돈은 없습니다. Integer array로 bills을 받게 되는데 bills[i]는 ith 번째 손님이 지불하는 bill을 말합니다. 만약에 고객들한테 정확하게 거스름돈을 줄 수 있으면 true를 반환하고 아니면 false를 반환해야합니다. 조건을 보자면 아래와 같이 정리할 수 있는데요. 초기에 가지고 있는 거스름돈 없음 고객이 낼 수 있는 돈의 종류는 3가지 정확하게 거스름돈을 줄 수 있는지 아닌지 풀이 푸는 방법은 여러가지 일 수 가 있겠는데요. 처음에 생각나는건 HashMap 이였습니다. key 값에 5..

Algorithm/LeetCode 2023.09.13

[Data Structure] List.of()

최근 테스트 케이스를 만들다가 자료 구조의 Mutability 때문에 고생을 한적이 있습니다. 결과를 먼저 얘기하자면 Immutable한 자료구조를 사용해서 이런 결과가 있었기 때문이었죠. 이 이슈의 Root cause는 코드 Implementation에는 ArrayList를 사용하고 테스트 케이스를 만들 때 mock list를 "List.of"를 사용했기 때문이죠. 왜 이런 이슈가 생긴걸까요? List.of() List.of()를 선언하고 class type을 본다면 뭐가 나올까요? ArrayList? LinkedList? 답을 말 하자면 둘 다 아닙니다. ArrayList와 LinkedList는 Collection 프레임워크의 Interface로서 객체를 insert, delete and update..

Java 2023.09.10