728x90
반응형
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 테스트 케이스 횟수를 입력받는다. T = int(sys.stdin.readline())
- 테스트 케이스 횟수만큼 반복하며 for _ in range(T)
- 각 테스트 케이스 별로 피보나치 수를 입력받는다. num = int(sys.stdin.readline())
- 각 피보나치 수의 0의 개수와 1의 개수를 저장할 리스트를 생성하고 초기의 0과 1의 0의 개수와 1의 개수를 리스트로 묶어 저장한다. li = [[1, 0], [0, 1]]
- 이후 다음 수인 2부터 입력받은 피보나치 수까지 반복하며 for i in range(2, num + 1)
- 각 수의 0과 1의 개수를 추가한다. li.append([li[i - 2][0] + li[i - 1][0], li[i - 2][1] + li[i - 1][1]])
- 2부터 각 수의 0과 1이 출력되는 개수는 이전과 그 이전의 0과 1의 개수를 더한 결과이다.
- 입력받은 피보나치 수의 0과 1이 출력되는 개수를 출력한다. print(f"{d[num][0]} {d[num][1]}")
반응형
3. 소스코드
import sys
T = int(sys.stdin.readline())
for _ in range(T):
num = int(sys.stdin.readline())
li = [[1, 0], [0, 1]]
for i in range(2, num + 1):
li.append([li[i - 2][0] + li[i - 1][0], li[i - 2][1] + li[i - 1][1]])
print(f"{li[num][0]} {li[num][1]}")
728x90
반응형
'백준' 카테고리의 다른 글
[백준] 10989번 : 수 정렬하기 3 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.15 |
---|---|
[백준] 2667번 : 단지번호붙이기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.15 |
[백준] 2606번 : 바이러스 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.15 |
[백준] 2609번 : 최대공약수와 최소공배수 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.13 |
[백준] 1193번 : 분수찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.13 |
[백준] 2231번 : 분해합 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.13 |
[백준] 1181번 : 단어 정렬 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.13 |
[백준] 9095번 : 1, 2, 3 더하기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.07.12 |