알고리즘 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

167. Two Sum II - Input Array Is Sorted

Two Sum과 Binary Search의 개념을 이용해서 풀 수 있는 간단한 문제 문제 - 정렬된 배열에서 target이 되는 값을 찾아 index + 1 되는 배열을 return하기 해결방법 - 배열이 이미 정렬되어 있어서 Binary Search를 사용 class Solution { public int[] twoSum(int[] numbers, int target) { int start = 0; int end = numbers.length - 1; int[] output = new int[2]; while (end > start) { int sum = numbers[start] + numbers[end]; if (sum == target){ output[0] = start + 1; output[1]..

Algorithm/LeetCode 2022.01.11