본문 바로가기
반응형

알고리즘/프로그래머스 level 39

[파이썬🐍] 프로그래머스 : 멀리 뛰기 def solution(n): if n 1가지 n=2 일때 (1,1) (2) -->2가지 이므로 n과 결과가 같다. n이 3보다 큰 경우는 점화식을 이용해서 d[i] = d[i-1]+d[i-2] 이 식을 도출해낼 수 있다. 점화식을 알아낸다면 프로그래머스 level 3 이지만 정말 간단한 문제인 것 같다. 2021. 9. 10.
[파이썬🐍] 프로그래머스 : 이중우선순위큐 def solution(operations): answer = [] for i in operations: if "I" in i: answer.append(int(i[2:])) elif "D" in i: if i[2] == "1" and answer: answer.remove(max(answer)) elif answer: answer.remove(min(answer)) if answer: return max(answer), min(answer) else: return [0,0] 우선 정말 간단하게 풀어본 풀이이다. 이중우선순위큐라는 문제답지 않게 풀었다. 시간초과가 나올 줄 알았는데 의외로 시간 제한은 없었나 보다. 그래도 문제의 의도대로 heap을 사용해서 풀어보았다. from heapq import h.. 2021. 8. 30.
[파이썬🐍] 프로그래머스 : 단어 변환 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.
반응형