반응형
[ 문제 ]
난이도: D3
문제 번호: 1289
원재가 컴퓨터를 만지다가 실수를 저지르고 말았다. 메모리가 초기화된 것이다.
다행히 원래 메모리가 무슨 값이었는지 알고 있었던 원재는
바로 원래 값으로 되돌리려고 했으나 메모리 값을 바꿀 때 또 문제가 생겼다.
메모리 bit중 하나를 골라 0인지 1인지 결정하면 해당 값이 메모리의 끝까지 덮어씌우는 것이다.
예를 들어 지금 메모리 값이 0100이고, 3번째 bit를 골라 1로 설정하면 0111이 된다.
원래 상태가 주어질 때 초기화 상태 (모든 bit가 0) 에서 원래 상태로 돌아가는데
최소 몇 번이나 고쳐야 하는지 계산해보자.
[ 코드 ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
for tc in range(1, int(input())+1):
memory = list(input())
start = ['0'] * len(memory)
cnt = 0
for i in range(len(memory)):
if memory[i] != start[i]:
cnt += 1
if memory[i] == '0':
for j in range(i, len(memory)):
start[j] = '0'
elif memory[i] == '1':
for j in range(i, len(memory)):
start[j] = '1'
else:
continue
print('#{} {}'.format(tc, cnt))
|
cs |
반응형
'SW Expert' 카테고리의 다른 글
[SWEA] 1859 백만 장자 프로젝트 Python (0) | 2021.05.11 |
---|---|
[SWEA] 1486 장훈이의 높은 선반 Python (0) | 2021.05.10 |
[SWEA] 1284 수도 요금 경쟁 Python (0) | 2021.05.08 |
[SWEA] 1288 새로운 불면증 치료법 Python (0) | 2021.05.07 |
[SWEA] 1242 암호코드 스캔 Python (0) | 2021.05.06 |