[LeetCode] 3151. Special array 1 (Python)
·
코딩 테스트
ProblemSolutionarray가 주어지면 양 옆 숫자로 두 쌍을 만들었을 때 differenct parity 가 만들어지는지 확인하는 문제우선 len(array) == 1 이면 무조건 True return그 이후에는 둘다 홀수 or 짝수인지 확인 후 맞으면 False, 아니면 continue굳이 동일 숫자인지 확인 안해도되었고, 홀/짝 경우로 나누지 않고 %2 나머지 값만 확인하면 된다!def isArraySpecial(self, nums: List[int]) -> bool: if len(nums) == 1: return True for i in range(len(nums)-1): if (nums[i] % 2) == (nums[i+1..
[LeetCode] 66.Plus One (Python)
·
코딩 테스트
Problem Solutionstring1자리수 integer가 포함된 list 가 주어지고 이를 숫자로 변환 후 +1한 digit의 자리수를 list에 담아서 반환하는 문제.string -> int +1 -> string -> int 로 변환해서 풀었다.다른 사람 풀이를 보니 대부분 이렇게 푼듯 더 효율적인 코드는 아래와 같다.def plusOne(self, digits: List[int]) -> List[int]: n = len(digits) for i in range(n - 1, -1, -1): #n-1 부터 뒤에서 앞으로 반복한다. 즉 마지막 숫자부터 시작 if digits[i] 시간 복잡도는 digits 길이만큼 수행되므로 O(N)공간 복잡도는 dig..
[LeetCode] 242. Valid Anagram
·
카테고리 없음
Problem SolutionHash문자열이 각각 동일한 수의 char 을 가지고있는지 체크하는 간단한 문제.hash 를 사용하여 각각의 character 의 수를 count 한다.python에 Counter 모듈을 사용해서 한 줄로 해결한 코드를 발견하였다.class Solution: def isAnagram(self, s: str, t: str) -> bool: return Counter(s) == Counter(t) Codeclass Solution: def isAnagram(self, s: str, t: str) -> bool: answer = True mapS, mapT = {}, {} if len(s) != len(t): ..
[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] Roman to Integer
·
코딩 테스트
1.문제https://leetcode.com/problems/roman-to-integer2.풀이dictionary를 이용하여 푸는 문제. 모든 경우의 수를 조합하여 미리 dict 를 만들어도 되고, 주어진 문자열에 대한 값만 dict 로 만들어도된다.[다른사람 풀이]class Solution: def romanToInt(self, s: str) -> int: roman = { "I": 1, "V": 5, "X": 10, "L": 50, "C": 100, "D": 500, "M": 1000 } res = 0 for i in range(len(s)): if i + 1  3.코드class Sol..