728x90
정말 현타가 왔던 문제.
하루종일 어떻게 풀까 생각했지만 나오지않았던 문제
결국 구선생의 도움을 받아
피보나치수열로 풀면된다는 해답을 얻고
코딩을 해보았다.
https://school.programmers.co.kr/learn/courses/30/lessons/12914
내 문제풀이
#n =1 경우의수 1 1
#n =2 경우의수 2 1,1 2
#n =3 경우의수 3 1,1,1 1,2 2,1
#n =4 경우의수 5 1,1,1,1 1,1,2 1,2,1 2,1,1 2,2
#n =5 경우의수 8 1,1,1,1,1 1,1,1,2 1,1,2,1 1,2,1,1 2,1,1,1 2,2,1, 2,1,2, 1,2,2
#n의 경우의수는 n-1경우의수 + n-2경우의수 (피보나치수열)
#경우의수를 담을 list가 필요
#list에서 마지막 n번째에 해당하는 값 출력
#출력된 값 % 1234567 = 정답
def solution(n):
answer = 0
list = []
list.append(1)
list.append(2)
for i in range(2,n) :
list.append(list[i-1] + list[i-2])
answer = list[n-1] % 1234567
return answer
다른사람 문제풀이
>> temp를 dict()로 선언해서 풀었음.
def solution(n):
temp = dict()
temp[0] = 1
temp[1] = 1
for i in range(2, n+1):
temp[i] = temp[i-1] + temp[i-2]
answer = temp[n] % 1234567
return answer
'알고리즘 (JAVA) > 프로그래머스 알고리즘' 카테고리의 다른 글
[코테준비 - python] n^2 배열자르기 level2 - 개발자배찌 (0) | 2023.01.02 |
---|---|
[코테준비 - python] 겹치는 선분의 길이 - 개발자배찌 (0) | 2022.12.17 |
[코테준비 - python] 신규 아이디 추천 level1 - 개발자 배찌 (0) | 2022.12.15 |
[코테준비 - python] 시저 암호 level1 - 개발자배찌 (1) | 2022.12.15 |
[코테준비 - python] 영어가 싫어요 level0 - 개발자 배찌 (0) | 2022.12.15 |