- map 사용하는 방법, 줄이는 방법을 몰라 문제 상황 그대로 작성하였다.
- 문자열을 split으로 나눠 값을 각각으로 나누고, 이를 리스트에 저장한다.
append()
를 작성하여 각각의 값을 리스트에 담아준다.- 최댓값 최솟값을 입출력 예에 알맞게 작성하여 answer에 넣어준다 !
def solution(s):
answer = ''
s = s.split()
t = []
for i in s:
t.append(int(i))
t.sort()
answer += str(t[0])
answer += ' '
answer += str(t[-1])
return answer
- 피보나치 수열을 까먹어서 다시 복습했다. 결론적으로 수학적 개념 몰라 틀렸다
- 리스트 담는 것까지는 다 했는데
for문
으로 케이스 돌릴려고했다.이 바보,,
동적 할당
을 진행한다. 총 걸음수를 넣었을 때, 갈 수 있는 방법을 계산할 수 있는 방법으로 피보나치 수열을 사용한다.can_num[i] = (can_num[i - 1] + can_num[i - 2]) % 1234567는 피보나치 수열을 구하는 방법 중 하나인 점화식이다. 피보나치 수열은 이전 두 항의 합으로 다음 항을 계산하는 수열이다.
여기서 can_num[i]는 i번째 칸에 도달하는 방법의 수를 나타낸다. can_num[i - 1]은 i - 1번째 칸에 도달하는 방법의 수이고, can_num[i - 2]는 i - 2번째 칸에 도달하는 방법의 수이다. 따라서, can_num[i]는 can_num[i - 1]과 can_num[i - 2]의 합으로 계산된다.
range 함수
가 3부터 시작하는 이유는 초기값 dp[1]과 dp[2]가 이미 설정되었기 때문에, can_num[3]부터 계산되어야한다.
[n] 으로 해두었더니 out of range 가 떠서 한칸씩 늘려 n+1 로 해주었다. (실수)
#내가 작성한 코드
def solution(n):
can_num = [0] * (n+1)
can_num[1] = 1
can_num[2] = 2
for i in range(3, n+1):
can_num[i] = can_num[i] = (can_num[i - 1] + can_num[i - 2]) % 1234567
return can_num[n]