문제/백준

[백준/BOJ] 17211번: 좋은 날 싫은 날 (파이썬3/Python3)

개 살구 2021. 7. 11. 04:54

문제

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 알아갑니다...

진짜 *를 +써서 한동안 헤맸다는...