Algorithm101 [LeetCode] 14 | Longest Common Prefix 14 | Longest Common Prefix https://leetcode.com/problems/longest-common-prefix/ 작성 코드 class Solution: def longestCommonPrefix(self, strs: List[str]) -> str: strs.sort(key=len) prefixes = [strs[0][:i] for i in range(len(strs[0]), 0, -1)] for prefix in prefixes: match = [str for str in strs if str[:len(prefix)] == prefix] if len(match) == len(strs): return prefix return "" prefixes 에는 가장 짧은 문자열의 모.. 2022. 2. 22. [그래프] 섬의 개수 200 | Number of Islands https://leetcode.com/problems/number-of-islands/ 작성 코드 접근 방법을 모르겠음 이상 코드 중첩 함수 이용 class Solution: def numIslands(self, grid: List[List[str]]) -> int: def dfs(i, j): # 배열 범위를 벗어나거나, 땅이 아닌 경우 종료 (하나의 섬 탐색 완료) if i = len(grid) or \ j = len(grid[0]) or \ grid[i][j] != '1': return # 방문한 경로는 0으로 표기함으로써 다시 방문하지 않도록 grid[i][j] = 0 # 동서남북 탐색 dfs(i + 1, j) dfs(i.. 2022. 2. 21. [프로그래머스] 60057 | 문자열 압축 60057 | 문자열 압축 https://programmers.co.kr/learn/courses/30/lessons/60057?language=python3 입출력 예시 2번 "ababcdcdababcdcd" -> "2ababcdcd" 작성 코드 def solution(s): lens = [] for unit in range(1, len(s) + 1): words = [s[i : i + unit] for i in range(0, len(s), unit)] tmp = [] for word in words: if tmp[-1:] == [word]: tmp[-2] = str(int(tmp[-2]) + 1) else: tmp.append("1") tmp.append(word) tmp_s = ''.join(i .. 2022. 2. 18. [LeetCode] 561 | Array Partition I 561 | Array Partition I https://leetcode.com/problems/array-partition-i/ 작성 코드 class Solution: def arrayPairSum(self, nums: List[int]) -> int: nums.sort() answer = 0 for i in range(0, len(nums), 2): answer += nums[i] return answer 이상 코드 class Solution: def arrayPairSum(self, nums: List[int]) -> int: return sum(sorted(nums)[::2]) 2022. 2. 17. [BOJ] 1051 | 숫자 정사각형 1051 | 숫자 정사각형 https://www.acmicpc.net/problem/1051 작성 코드 n, m = map(int, input().split()) nums = [] same = [] for _ in range(n): nums.append(list(map(int,input()))) for k in range(1, min(n, m)+1) : for x in range(n-k) : for y in range(m-k) : if (nums[x][y] == nums[x][y+k] == nums[x+k][y] == nums[x+k][y+k]): same.append(k+1) if same: print(max(same)**2) else: print(1) x, y 는 가로, 세로 인덱스 / k 는 정사각.. 2022. 2. 16. [프로그래머스] 43165 | 타겟 넘버 43165 | 타겟 넘버 https://programmers.co.kr/learn/courses/30/lessons/43165 이상 코드 BFS def solution(numbers, target): answer = 0 leaves = [0] for number in numbers: temp = [] for parent in leaves: temp.extend([parent + number, parent - number]) leaves = temp for leaf in leaves: if leaf == target: answer += 1 return answer 2022. 2. 15. 이전 1 ··· 9 10 11 12 13 14 15 ··· 17 다음 반응형