공부하기싫어
article thumbnail

ㄷㄷ

 

이전 코드를 어떻게 줄일지 모르겠어서 결국

구글링했다..

 

이전코드와 정답코드 모두 깃으로 남겨놓았다.

 

https://github.com/cyanindy/baekjoon_online_judge/blob/main/python3/step8/2775.py

 

GitHub - cyanindy/baekjoon_online_judge: https://www.acmicpc.net/

https://www.acmicpc.net/ . Contribute to cyanindy/baekjoon_online_judge development by creating an account on GitHub.

github.com

 

수학의 천재신가...

 

일단 이분 블로그를 참고했다

https://ooyoung.tistory.com/89

 

백준 2775번 [파이썬 알고리즘] 부녀회장이 될테야

[Python] 백준 알고리즘 온라인 저지 2775번 : 부녀회장이 될 테야 Python3 코드 t = int(input()) for _ in range(t): floor = int(input()) # 층 num = int(input()) # 호 f0 = [x for x in range(1, num+1)..

ooyoung.tistory.com

 

 

 

나는 어떻게든 재귀적으로 풀어보려고 했는데

이분은 리스트로 뽑아버렸다

법칙을 찾아낸 부분이 신기한데,

 

이분이 말하신게

 

'두번째 for문의 숫자 인덱스를 이용해서 이전 인덱스의 숫자를 더한 값을 리셋한다. 즉, 층 수가 증가할 때마다 한층 아래의 이전 호실에 사는 사람의 숫자를 더하는 것과 같은 의미가 된다.'

 

이걸 이해하는게 너무 어려웠는데

 

대충 이해가 될 무렵에 진짜 이사람은 쌉고수라는게 느껴졌다

 

0층에 사는 사람들이 5호실까지 있다고 한다면

1 2 3 4 5 명씩 산다고 할때

 

1층을 새로운 리스트로 뽑는게 아니라 기존 리스트에서 연산을 이어나가서

(for문에서는 리스트의 1번 인덱스 부터 건드리기 때문에 0번인덱스인 1호실 들은 그대로)

 

1층-2호를 구하게 될 때

1층-1호는 1명이고 1층-2호의 변수는 0층-2호 값인 2이다.

이걸 +=로 업데이트 시키는거지

 

현재호수 += 이전호수

 

이런방법으로 계속 증감해서 업데이트 시켜가면서

원하는 호수까지의 리스트를 만들어낼 수 있다는거

 

이건 진짜 개쩔었다 ㄹㅇ ㅋㅋ

캬 이게 알고리즘인가?