본문 바로가기

전체 글50

leetcode 139. Word Break 풀이 문제 : 주어진 문자열을 주어진 wordDict의 문자열로 완전히 나눌 수 있는지 여부를 반환하라. Input: s = "leetcode", wordDict = ["leet","code"] Output: true Explanation: Return true because "leetcode" can be segmented as "leet code". Follow up : 아이디어 : find를 통해 wordDict와 일치하는 문자열의 시작 index를 찾은 후 그것을 기준으로 문자열을 나누어서 재귀로 탐색하려 했다. 하지만 이 경우에는 제대로 된 반환 값을 전달하기 힘든 문제와 시간 복잡도의 증가로 인해 문제를 풀지 못했다. 코드 : 다른 사람이 짠 코드 def wordBreak(self, s, wordD.. 2021. 4. 27.
leetcode 62. Unique Paths 풀이 문제 : int m 과 n 이 주어질때 m x n grid (0,0) 에서 출발해서 right, down으로만 이동하여 (m-1, n-1) 에 도달한다. 도달하는 유니크한 경우의 수를 반환하라 Follow up : 아이디어 : 이전에 풀었던 경로상의 비용을 최소화 하는 dp문제와 유사하다고 생각했다. 가로로만 가는 경우, 세로로만 가는 경우는 유니크 경로가 하나만 존재한다. 이 경우를 먼저 설정한 후. 나머지 경로에 대해서는 인접한 left, top 경로의 경우의 수 합으로 유니크 경로를 저장한다. 코드 : class Solution: def uniquePaths(self, m: int, n: int) -> int: p = [[0 for j in range(n)] for i in range(m)] for.. 2021. 4. 23.
leecode 238. Product of Array Except Self 풀이 문제 : int 로 이루어진 list가 주어질 때 해당 인덱스의 원소를 제외한 나머지 원소의 곱을 인덱스와 원소로 가지는 list는 반환하라 Follow up : 아이디어 : K * O(n) 의 시간 복잡도를 가지기 위해, 0을 제외한 나머지 모든 원소의 곱을 곱해서 저장한다. 0은 갯수를 카운트 한다. 다음 번 순회에서 0일때는 다른 0이 있는 지 확인 후 있으면 0 반환, 없으면 m을 반환. 0이 아닐때는 0이 있다면 0 반환, 없으면 m // num을 반환한다. 코드 : class Solution: def productExceptSelf(self, nums: List[int]) -> List[int]: m = 1 zc = 0 ans = [] for num in nums: if num == 0: zc.. 2021. 4. 23.
leecode 22. Generate Parentheses 풀이 문제 : 아래와 같이 n이 주어질 때 ( 1 2021. 4. 23.