릿코드 8

<릿코드> 5. Longest Palindromic Substring

거의뭐 될때까지 냈는데 ; 알고리즘 상 단축을 못시키겠어서 가장 큰거 부터 찾으면 그만 두게하고, 캐쉬를 사용하긴 했는데 (효용이 있는건지;) 가장 큰거부터 찾으니까 단축이 잘되긴했다. 근데 아래 답도 시간 순위 너무 낮고, 2번 제출해보니까 시간 다르길래 3번째 내니까 겨우됐음. 좋은 답은 아닌듯... class Solution { var cache = [[Bool]](repeating: Array(repeating: false, count: 1001), count: 1001) var maxLength = 0 var maxStr: String? func longestPalindrome(_ s: String) -> String { let strArray = Array(s) for k in 0.. Bool..

<leet code> Two sum

[https://leetcode.com/problems/two-sum/submissions/] 릿 코드 문제가 면접에 나오기 좋아 보인다.ㅎㅎ; 공부하자. 음 이 문제는 배열이 주어져 있을때, 특정 수가 되는 두 수의 위치를 구하는 것인데, 나는 어떻게 했냐면, 배열을 정렬하고, 합을 두 수로 만든다는 것에서, 작은 것과 큰것을 더하고 투포인터 방식으로 둘중에 한쪽을 줄여서 찾는 방식으로 풀었다. 이전에 백준에서 풀어본 문제라 그냥 자연스럽게 떠오른거 같다..... 근데 음 솔루션을 보니 1. 브루트 포스 2. 투패스 해쉬 테이블로 ,시간 절약 왜 투패스냐면 두번 이터레이트 하는데, 첫번째는 해쉬테이블에 값을 넣고, 두번째는 타겟과의 차이값이 해쉬테이블에 있는지 확인 하는것이다. 3. 원패스 해쉬 테이블..

leet code : trapping rain water, 백준 : 히스토그램 6549

내가 전에 면접 문제로 풀어본 문제다 난 히스토그램 문제랑 비슷하게 생각해서 했는데 탈락했다 ㅋㅋ 다시 풀어보자 여러 방법으로 과연 내가 왜 틀렸던 것인가 풀이가 틀린게 아니라면 내가 못알아 듣게 말한게 큰거 같다. 면접에서 일단 첫구현인 내가 생각했던 방법이다. 틀렸따. ㅋㅋ class Solution { public: int trap(vector& height) { int cur; int sum=0; for(int i=0;i=0 && height[left-1] > height[left]){ left -= 1; } while(right+1 < height.size() && height[right] < height[right+1]){ right += 1; } cout