분류 전체보기252 [LeetCode] 55. Jump Game 접근 처음에 백트래킹으로 풀었으나 TLE로 인해 승인되지 않았음 찾아본 결과 백트래킹+DP 로 풀거나 그리디 알고리즘을 사용하여 풀어야 함을 알게 되었음 그리디 알고리즘을 통해 문제를 해결 https://www.youtube.com/watch?v=Yan0cv2cLy8 참고하였음 문제 링크 https://leetcode.com/problems/jump-game/ 솔루션 class Solution: def canJump(self, nums: List[int]) -> bool: nums_length = len(nums) point = nums_length-1 for index in range(nums_length-1, -1, -1): # if available to move point from place of.. 2023. 4. 3. [LeetCode] 36. Valid Sudoku 접근 스도쿠에 문제 풀이 방식을 알고 있으면 가볍게 풀 수 있을 것으로 보임 문제 접근 방식은 매우 다양함. 논리를 세우고 방법이 나오지 않는다면 처음부터 다시 다른 방향으로 빠르게 바꾸는 것 또한 지혜인 듯 함 set 함수를 응용하여 코드를 간결화하는 것이 좋음 문제 링크 https://leetcode.com/problems/valid-sudoku/description/ 솔루션 class Solution: def isValidSudoku(self, board: List[List[str]]) -> bool: SUBSQ = [[[] for _ in range(3)] for _ in range(3)] # check ROWS for i in range(9): ROW = [] for j in range(9): .. 2023. 3. 31. [Python3] 큰 따옴표(")와 작은 따옴표(') 큰 따옴표(Double Quotes)와 작은 따옴표(Single Quotes) 상황에 따라 추천하는 경우가 다를 뿐 차이가 없다고 보셔도 무방합니다. 문자열에 작은 따옴표가 포함되는 경우, 큰 따옴표로 문자열을 감싸 주어야 합니다. example = "I'm an apple" # 출력 결과 : I'm an apple 반대로 문자열에 큰 따옴표가 포함되는 경우, 작은 따옴표로 문자열을 감싸 주어야 합니다. example = 'Apple said "Hello banana"' # 출력 결과 : Apple said "Hello banana" 문자열에 둘 다 들어가야 하는 경우, 큰 따옴표/작은 따옴표 세개로 문자열을 감싸 주어야 합니다. example = """"Hello Apple?" banana said. .. 2023. 3. 26. [LeetCode] 79. Word Search 접근 항상 리스트 자료형을 활용할 때에는 조심해야 한다. 대중적인 접근법을 사용해서 문제 풀이, 가능 여부와 관계없이 선행 탐색 후 올바르지 않는 경우를 조건문을 통해 거르는 로직 진행 백트래킹 함수 구현 시 boolean 형을 리턴하는 방식을 추천, 괜찮은 테크닉을 구현할 수 있다. 문제 https://leetcode.com/problems/word-search/description/ 솔루션 class Solution: def exist(self, board: List[List[str]], word: str) -> bool: ROW_length = len(board) COL_length = len(board[0]) WORD_length = len(word) def backtrack(ROW, COL, i.. 2023. 3. 26. [LeetCode] 200. Number of Islands 접근 오히려 easy난이도보다 쉬운 문제인 것 같다 제공되는 자료형이 숫자가 아니라 문자임을 감안하지 않아 조금 고민 일반적인 방법의 코드도 숙지하는 것이 중요해 보임 문제 https://leetcode.com/problems/number-of-islands/description/ 솔루션 class Solution: def numIslands(self, grid: List[List[str]]) -> int: answer = 0 ROW_length = len(grid) COL_length = len(grid[0]) visited = [[False for _ in range(COL_length)] for _ in range(ROW_length)] def dfs(ROW, COL): # update this p.. 2023. 3. 26. [LeetCode] 463. Island Perimeter 접근 각 사이드를 확인하여 perimeter를 추가해야 하는 지 그렇지 않은 지를 논리적으로 확실하게 구분하는 것이 핵심 문제 조건 중 섬의 갯수는 무조건 하나이므로 DFS나 DFS를 사용하여 탐색 성능을 높이는 것이 중요해 보임 논리적 흐름이 잘못되었으면 동일한 코드를 수정하기 보다 논리적 흐름을 재설정하여 코드를 새롭게 짜는 것이 좋은 습관인 것 같음.. 문제 링크 https://leetcode.com/problems/island-perimeter/description/ 솔루션 class Solution: def islandPerimeter(self, grid: List[List[int]]) -> int: perimeter = 0 ROW_length = len(grid) COL_length = len.. 2023. 3. 25. 이전 1 ··· 32 33 34 35 36 37 38 ··· 42 다음