문제
https://www.acmicpc.net/problem/17211
17211번: 좋은 날 싫은 날
지은이가 건국한 나라인 유애나에 살고 있는 재현이는 너무 단순한 나머지 매일이 기분이 좋은 날, 기분이 싫은 날 두가지로 나누어진다. 어느 날 지은이는 재현이에 대한 놀라운 사실을 발
www.acmicpc.net
생각
2의 N제곱의 경우의 수가 있다. ㅊ
으으ㅡ으으음...
첫 시작의 기분은 정해져 있고, 결과는 좋은날과 싫은날 두 가지 이다.
직접 2일, 3일의 경우의 수를 계산해본다면 누적해서 계산해야된다는 것을 알 수 있다.
첫날은 주어지기 때문에 다음날에 대한 경우의 수가 크지 않다. 이제 그 다음부터 2가지 경우로 생각하면된다
만약 좋은 경우라면, 좋은데 계속 좋음과 좋은데 싫음 이렇게 두 가지가 있다.
-
우선 입력받은 값을 다 저장해둔다.
첫날은 정해지기 때문에 첫 스타트를 끊어준다.
첫날이 좋은 날이면 좋은날로 가는 누적변수는 좋-좋으로, 싫은날로 가는 누적변수는 좋-싫로.
첫날이 싫은 날이면 ... 이런식으로!
코드
N, first = map(int, input().split())
gg, gb, bg, bb = map(float, input().split())
gCount = [0 for i in range(N)]
bCount = [0 for i in range(N)]
if first == 0:
gCount[0] = gg
bCount[0] = gb
else:
gCount[0] = bg
bCount[0] = bb
for i in range(1, N):
gCount[i] = gCount[i-1]*gg + bCount[i-1]*bg
bCount[i] = gCount[i-1]*gb + bCount[i-1]*bb
print(round(gCount[N-1]*1000))
print(round(bCount[N-1]*1000))
...진짜... 너무... 우웩.......
새벽에 풀려다가 후...^^
map 알아갑니다...
진짜 *를 +써서 한동안 헤맸다는...
'문제 > 백준' 카테고리의 다른 글
[백준/BOJ] 10757번: 큰 수 A+B (파이썬3/Python3) (2) | 2021.07.11 |
---|---|
[백준/BOJ] 2953번: 나는 요리사다 (파이썬3/Python3) (0) | 2021.07.11 |
[백준/BOJ] 17210번: 문문문 (파이썬3/Python3) (0) | 2021.07.11 |
[백준/BOJ] 5598번: 카이사르 암호 (파이썬3/Python3) (0) | 2021.07.11 |
[백준/BOJ] 11721번: 열 개씩 끊어 출력하기 (파이썬3/Python3) (0) | 2021.07.11 |