전체 글257 [프로그래머스] 게임 맵 최단거리 접근 DFS 또는 BFS로 풀 수 있지만 DFS로 풀었다가는 TLE에 걸릴 수 있다는 점에 명심해야 한다. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/1844 솔루션 def solution(maps): ROW_length = len(maps) COL_length = len(maps[0]) visited = [[False for _ in range(COL_length)] for _ in range(ROW_length)] queue = [[0,0,1]] while queue: ROW, COL, DIST = queue.pop(0) # 조건에 맞지 않는 경우는 모두 추가 탐색하지 않습니다. if ROW ROW_leng.. 2023. 4. 16. [Kotlin] 코틀린 Nullability 해당 변수가 Null 임을 확인하기 위해 다른 언어는 조건문 등을 통해 null exception을 잡아주어야 합니다. 간단한 소프트웨어 개발에는 크게 문제가 되지 않지만 규모가 커지면서 예외처리를 잡아주기 위한 코드는 배가 됩니다. 코드의 가독성과 효율이 낮아집니다. 이러한 문제를 코틀린에서는 MZ하게 해결합니다. null 가능한 변수 선언 코틀린에선, 일반적인 변수 선언 후 값으로 null 을 저장할 수 없습니다. fun main() { val name: String = null } // 에러 : Null can not be a value of a non-null type String 그러나 ? 연산자를 변수 선언 시 같이 작성하는 경우 null 또한 저장이 가능합니다. fun main() { val.. 2023. 4. 16. [프로그래머스] 달리기 경주 접근 처음에 O(N^2)로 솔루션을 작성했지만 당연히 TLE 해시 자료구조를 사용하여 문제를 O(N)으로 풀어야 한다. 문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/178871 솔루션 def solution(players, callings): Hash = {} for index, value in enumerate(players): Hash[value] = index for index, value in enumerate(callings): rank = Hash[value] # swap in players players[rank-1], players[rank] = players[rank], players[rank-1] # swap rank.. 2023. 4. 15. [LeetCode] 71. Simplify Path 접근 stack과 array 탐색을 통해 문제를 해결해야 함을 알았으나 코드를 논리적으로 짜지 못하였음. 효율적인 로직을 짜는 것에 대한 훈련이 필요해 보임 문제 링크 Simplify Path - LeetCode 솔루션 class Solution: def simplifyPath(self, path: str) -> str: stack = [] word = "" for char in path + "/": if char == "/": # if .. -> delete lastest stack if word == "..": if stack: stack.pop() # if none of them and not an empty word, add stack elif word != "" and word != ".": s.. 2023. 4. 12. [GitHub] 내가 속한 그룹 내 프로필에 노출하기 내가 속한 그룹들을(Organizaion) 내 프로필에 공개적으로 노출하고 싶을 때 이를 설정하는 방법을 서술합니다. 매번 설정할 때마다 까먹네요.. 방법 프로필에 노출하고자 하는 그룹에 들어가서 People을 선택합니다. People에서 본인에 해당하는 visibility를 Public으로 선택합니다. 이제 제 깃허브 프로필에 접속하는 다른 사람들이 제 그룹을 확인할 수 있습니다. 끝.. 2023. 4. 12. [LeetCode] 139. Word Break 접근 완전탐색이 아닌 DP로 풀어야 하는 문제 DP[0]에 도달하여 True를 리턴하면 되기에 Bottom-up 방식으로 문제를 풀 수 있다. DP 리스트 길이를 s의 길이보다 하나 더 길게 설계하여 부드러운 솔루션을 작성해야 함 문제 링크 https://leetcode.com/problems/word-break/description/ 솔루션 class Solution: def wordBreak(self, s: str, wordDict: List[str]) -> bool: s_length = len(s) DP = [False for _ in range(s_length+1)] DP[s_length] = True for i in range(s_length-1, -1, -1): for word in wordD.. 2023. 4. 10. 이전 1 ··· 30 31 32 33 34 35 36 ··· 43 다음