[LeetCode] 1. Two Sum (Python)
·
코딩 테스트
Problem Solutionhashhash를 사용해서 푸는 문제. 문제에서도 O(n^2) 보다 더 적은 시간 복잡도로 푸는것을 권장했다.아래는 1등 풀이class Solution: def twoSum(self, nums: List[int], target: int) -> List[int]: dt = {} for i, num in enumerate(nums): complement = target - num if complement in dt: return [dt[complement], i] dt[num] = i return [] 일반 for 문을 사용..
[LeetCode] 9. Palindrome Number (Python)
·
코딩 테스트
Problemhttps://leetcode.com/problems/palindrome-number/description/?envType=study-plan-v2&envId=top-interview-150 Solutionarray정수 x 가 주어지면 앞뒤 거꾸로 바꾸어도 동일한 숫자가되는지 체크하는 문제.stack 을 사용하면되겠다고 생각했다. 몰랐는데 파이썬에서 string 을 거꾸로 뒤집는 방법이있었다 ㄷㄷ아래가 바로 그 코드s = str(x)return s == s[::-1] 다른 방법은 10으로 나눈 나머지를 tmp 변수에 * 10 하며서 더해준다.오리지널 x 는 10으로 나눈 몫으로 업데이트 해준다.class Solution: def isPalindrome(self, x: int) -> bo..
[LeetCode] 290.Word Pattern (Python)
·
코딩 테스트
Problem Solutionarray 이전에 포스팅한 isomorphic string 과 동일한 문제.단지 스트링이 단순한 문자열이 아닌 단어로 이루어진 문장으로 변형한 문제.동일하게 sub string을 통해서 각 단어의 index 를 구한 후 pattern 과 비교하였다.  Codeclass Solution: def wordPattern(self, pattern: str, s: str) -> bool: answer = False patternLi , sLi = [], [] for p in pattern: patternLi.append(pattern.index(p)) sub_str = s.split() ..
[LeetCode] 205. Isomorphic String (Python)
·
코딩 테스트
ProblemSolutionArray두 개의 문자열 s, t가 동형(isomorphic)인지 확인하는 문제. s에 존재하는 문자를 가지고 t를 만들 수 있으면 두 문자열 s, t는 동형이다. 단, 문자의 순서를 유지하며 모든 문자를 다른 문자로 바꿀 수 있어야한다. 두 문자가 같은 문자로 맵핑되어서는 안된다. 처음에 dictionary로 character 개수만 카운트해서 비교했는데 알고보니 문제 이해를 잘 못했다.엣지 케이스인 s = bbbaaaba, t = aaabbbba 에서 마지막에서 두번째 문자에서 조건을 만족하지 못하므로 falseCodeclass Solution: def isIsomorphic(self, s: str, t: str) -> bool: answer = False..
[LeetCode] 202. Happy Number (Python)
·
코딩 테스트
1. 문제https://leetcode.com/problems/happy-number/description/?envType=study-plan-v2&envId=top-interview-1502. 풀이Hash 를 사용한 기본 문제. 문제 이해를 완벽하게 못해서 헤맸다.각 자리수를 제곱하여 sum 하는 사이클을 돌다가 만약 1로 끝나면 happy number 이므로 return true 아니면 return falsen=2 인 경우 2 -> 4 -> 16 -> 37 ->  58 -> 89 -> 145 -> 42 -> 20 -> 4 (cycle 발생)즉 방문했던 숫자를 또 방문하면 return false를 반환해야한다. 3. 코드class Solution: def isHappy(self, n: int) -..
[HackerRank] Contacts (Python)
·
코딩 테스트
1.문제https://www.hackerrank.com/challenges/contacts/problem 2.풀이처음에 정직하게 구현으로 풀다가 time limit exceeded 나서 실패..단순해 보이지만 Time Complexity를 신경써서 풀어야하는 문제이다.def contacts(queries): answer = [] arr = [] for i in range(len(queries)): command = queries[i][0] if command == 'add': data = queries[i][1] arr.append(data) else: target = queries[i][1]..