Easy:
- 1. Two Sum :
- HashMap. HashMap에 주어진 target - 현재 num이 있는지 체크
- 없으면 HashMap에 {num, index} 를 넣고
- 있으면 int[]{ index1, index2 } , index1은 map에서 target-num으로 가져온거, index2는 현재 for loop pointer 가 가르키고있는 index임.
- TC = O(N), SC = O(N)
- 13. Roman to Integer :
- HashMap에 주어진 Symbol과 숫자를 넣음.
- 포함되지 않은 4,9 40, 90, 400, 900 같은 case는 앞에 기호가 뒤에 기호보다 작다는 것을 이용해서 풀어주면 됨.
- TC = O(1), SC = O(1) -> 로마자로 나타낼수 있는 숫자가 한정됨. 그래서 O(1).
- 20. Valid Parentheses :
- Stack
- ( { [ - 여는 부분을 만났을때 닫은 부분 ) } ] 을 stack에 넣어주기
- ) } ] - 닫는 부분을 만났을때 stack 에서 꺼내면서 다르면 return false
- 마지막에 stack이 비어있으면 true, 안비어 있으면 false.
- TC = O(n), SC = O(n)
- 121. Best Time to Buy and Sell Stock
- (1) min Price 저장 : minPrice = Math.min(minPrice, prices[i]);
- (2) profit 업데이트 : profit = Math.max(profit, prices[i] - minPrice)
- 680. Valid Palindrome II
- s can be palindrome after deleting at most one character from it.
- Two pointer
- 한번은 다른게 괜찮으니 처음 달라졌을때만 두 포인터를 넘겨서 따로 체크.
- TC: O(N), SC: O(1)
- 14. Longest Common Prefix
- Input: strs = ["flower","flow","flight"] -> 긴 prefix 찾는 문제
- 한글자씩 다 체크해주기 f -> l -> o 이런식으로
- TC = O(M), SC = O(1). M = 글자수
- 문제 풀이 중단..... 너무 비효율적.....
- 차라리 엑셀에 정리하는게 더 빠를듯...
- https://docs.google.com/spreadsheets/d/1l5Qq1MolPpwh2qcxjpBoCczKAEYhViB_adaCnAzonFU/edit?ouid=110862024920538518792&usp=sheets_home&ths=true
'코딩테스트 준비 > Leetcode' 카테고리의 다른 글
20. Valid Parentheses (0) | 2022.07.28 |
---|---|
1. Two Sum (0) | 2022.07.27 |