JH 개발 블로그
백준 1285 동전 뒤집기 파이썬 본문
n = int(input())
coin = [list(input()) for _ in range(n)]
ans = n * n + 1
for bit in range(1 << n):
tmp = [coin[i][:] for i in range(n)]
for i in range(n):
if bit & (1 << i):
for j in range(n):
if tmp[i][j] == 'H':
tmp[i][j] = 'T'
else:
tmp[i][j] = 'H'
tot = 0
for i in range(n):
cnt = 0
for j in range(n):
if tmp[j][i] == 'T':
cnt += 1
tot += min(cnt, n-cnt)
ans = min(ans, tot)
print(ans)
각 동전마다 뒤집는다/ 안뒤집는다 2가지 경우의 수가 있습니다.
만약 n개의 동전이 있다면 총 경우의 수는 2^n개가 됩니다.
tmp 각 열에서 T의 개수가 H보다 많다면, 열을 뒤집었다 칩니다.(n-cnt)
'코딩테스트 > 백준' 카테고리의 다른 글
백준 1202 파이썬 보석 도둑 (0) | 2022.01.23 |
---|---|
백준 2109 파이썬 순회공연 (0) | 2022.01.23 |
백준 파이썬 12015 가장 긴 증가하는 부분수열 2 (0) | 2022.01.23 |
백준 1783 파이썬 병든 나이트 (0) | 2022.01.23 |
백준 파이썬 12970 AB (0) | 2022.01.23 |
Comments