이전 코드를 어떻게 줄일지 모르겠어서 결국
구글링했다..
이전코드와 정답코드 모두 깃으로 남겨놓았다.
https://github.com/cyanindy/baekjoon_online_judge/blob/main/python3/step8/2775.py
수학의 천재신가...
일단 이분 블로그를 참고했다
https://ooyoung.tistory.com/89
나는 어떻게든 재귀적으로 풀어보려고 했는데
이분은 리스트로 뽑아버렸다
법칙을 찾아낸 부분이 신기한데,
이분이 말하신게
'두번째 for문의 숫자 인덱스를 이용해서 이전 인덱스의 숫자를 더한 값을 리셋한다. 즉, 층 수가 증가할 때마다 한층 아래의 이전 호실에 사는 사람의 숫자를 더하는 것과 같은 의미가 된다.'
이걸 이해하는게 너무 어려웠는데
대충 이해가 될 무렵에 진짜 이사람은 쌉고수라는게 느껴졌다
0층에 사는 사람들이 5호실까지 있다고 한다면
1 2 3 4 5 명씩 산다고 할때
1층을 새로운 리스트로 뽑는게 아니라 기존 리스트에서 연산을 이어나가서
(for문에서는 리스트의 1번 인덱스 부터 건드리기 때문에 0번인덱스인 1호실 들은 그대로)
1층-2호를 구하게 될 때
1층-1호는 1명이고 1층-2호의 변수는 0층-2호 값인 2이다.
이걸 +=로 업데이트 시키는거지
현재호수 += 이전호수
이런방법으로 계속 증감해서 업데이트 시켜가면서
원하는 호수까지의 리스트를 만들어낼 수 있다는거
이건 진짜 개쩔었다 ㄹㅇ ㅋㅋ
캬 이게 알고리즘인가?
'파이썬 > 알고리즘' 카테고리의 다른 글
success - Baekjoon 9단계-5 4948번 베르트랑 공준 python3 (0) | 2022.02.07 |
---|---|
success - Baekjoon 9단계-4 / 1929번 소수 구하기 python3 (0) | 2022.02.04 |
success - Baekjoon 9단계-2 / 2581번 소수 python3 (0) | 2022.01.27 |
success - Baekjoon 9단계-1 / 1978번 소수 찾기 python3 (0) | 2022.01.26 |
success - Baekjoon 8단계-8 / 10757번 큰 수 A+B python3 (0) | 2022.01.25 |