본문 바로가기
반응형

전체 글162

[파이썬🐍] 프로그래머스 : 단어 변환 def solution(begin,target,words): answer = 0 if target not in words: #찾고자 하는 단어가 words에 없을 경우 return 0 stack = [] stack.append(begin) visited = [] while stack: word = stack.pop() if word == target: return answer else: for i in range(len(words)): if len([j for j in range(len(words[i])) if words[i][j]!=word[j]]) == 1: #한글자만 다르다면 if words[i] not in visited: visited.append(words[i]) stack.append(wor.. 2021. 7. 20.
[파이썬🐍] 프로그래머스 : 정수 삼각형 def solution(triangle): triangle = [[0] + line + [0] for line in triangle] #아래 계산에서 범위 벗어나므로 예외처리 for i in range(1, len(triangle)): #제일 꼭대기는 계산할 필요 없으므로 1부터 시작 for j in range(1, i+2): triangle[i][j] += max(triangle[i-1][j-1], triangle[i-1][j]) return max(triangle[-1]) #마지막줄중의 max 동적계획법 풀이 문제는 처음 생각해내려면 어려운데 알아내면 알고리즘 중에 제일 재밌는 것 같다. 2021. 7. 19.
[파이썬🐍] 프로그래머스 : 등굣길 def solution(m, n, puddles): dp = [[0] * (m + 1) for i in range(n + 1)] dp[1][1] = 1 #시작점 for i in range(1, n + 1): for j in range(1, m + 1): if i == 1 and j == 1: continue if [j,i] in puddles: dp[i][j] = 0 else: dp[i][j] = (dp[i - 1][j] + dp[i][j - 1]) return dp[n][m] % 1000000007 최단 거리이기 때문에 구하려는 좌표의 왼쪽과 위의 좌표만 가지고 더해주면 된다. 웅덩이는 0으로 넣어줘서 계산에 관여하지 않도록 한다. 2021. 7. 18.
[파이썬🐍] 프로그래머스 : 네트워크 def solution(n, computers): answer = 0 visited = [False for i in range(n)] for com in range(n): if visited[com] == False: DFS(n,computers,com,visited) answer += 1 return answer def DFS(n,computers,com,visited): visited[com] = True for connect in range(n): if connect != com and computers[com][connect] == 1: if visited[connect] == False: DFS(n,computers, connect, visited) def solution(n, computers.. 2021. 7. 17.
반응형