<leetCode> 9. Palindrome Number 많이 해본 문젠데, 쉽긴했다. 근데 내가 한 방법 말고도 있나 있으면 신기할듯 class Solution { func isPalindrome(_ x: Int) -> Bool { let arr = Array(String(x)) let count = arr.count for (idx, val) in arr.enumerated() { let st = idx let dt = count - st - 1 guard st 알고리즘 문제 풀기 2021.01.16
<leetCode> 8. String to Integer (atoi) 음 뻘짓을 너무 많이했는데, 그냥 문제가 안내하는 단계로만 하면 풀리는데, 혼자 그냥 만들해봄... 내가 만들면 왜케 이상하지 class Solution { let max = 1 알고리즘 문제 풀기 2021.01.15
<leetCode> 7. Reverse Integer 푸는데 오래걸렸다. swift랑 안친해서 그런거 같다. class Solution { func reverse(_ x: Int) -> Int { var str = String(x) var arr = Array(str) var y = x let max = 1 알고리즘 문제 풀기 2021.01.08
<릿코드> 6. ZigZag Conversion class Solution { func convert(_ s: String, _ numRows: Int) -> String { var arr = [[Character?]](repeating: Array(repeating: nil, count: 1001), count: 1001) let str = Array(s) var row = 0 var col = 0 var phase: Phase = .down for ch in str { if row == 0 { phase = .down } else if row == numRows - 1 { phase = .up } arr[row][col] = ch if phase == .down { row += 1 } else { row -= 1 col += 1 } } var st.. 알고리즘 문제 풀기 2020.12.24
<릿코드> 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.. 알고리즘 문제 풀기 2020.12.18
<leetCode> 3. Longest Substring Without Repeating Characters class Solution { var dic: [Character: Int] = [:] var length = 0 var maxLength = 0 func lengthOfLongestSubstring(_ s: String) -> Int { var st = 0 var dt = 0 for (dt, dtChar) in s.enumerated() { if let prevIndex = dic[dtChar], st 0 { maxLength = maxLength < len ? len : maxLength } } //print("\(dic)") return maxLength } } 알고리즘 문제 풀기 2020.12.15
<leet code> Two sum [https://leetcode.com/problems/two-sum/submissions/] 릿 코드 문제가 면접에 나오기 좋아 보인다.ㅎㅎ; 공부하자. 음 이 문제는 배열이 주어져 있을때, 특정 수가 되는 두 수의 위치를 구하는 것인데, 나는 어떻게 했냐면, 배열을 정렬하고, 합을 두 수로 만든다는 것에서, 작은 것과 큰것을 더하고 투포인터 방식으로 둘중에 한쪽을 줄여서 찾는 방식으로 풀었다. 이전에 백준에서 풀어본 문제라 그냥 자연스럽게 떠오른거 같다..... 근데 음 솔루션을 보니 1. 브루트 포스 2. 투패스 해쉬 테이블로 ,시간 절약 왜 투패스냐면 두번 이터레이트 하는데, 첫번째는 해쉬테이블에 값을 넣고, 두번째는 타겟과의 차이값이 해쉬테이블에 있는지 확인 하는것이다. 3. 원패스 해쉬 테이블.. 알고리즘 문제 풀기 2020.03.12
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 알고리즘 문제 풀기 2020.02.25