Post
1289. 원재의 메모리 복구하기 (SWEA) | Gihun Son

1289. 원재의 메모리 복구하기 (SWEA)

※ SW Expert 아카데미의 문제를 무단 복제하는 것을 금지합니다.

출처:

SW Expert Academy

나의 풀이

1
2
3
4
5
6
7
8
9
10
T = int(input())
for test_case in range(1, T + 1):
    origin_bits=input()
    cnt=0
    for ob in origin_bits:
        if ob=='1' and cnt%2==0:
            cnt+=1
        elif ob=='0' and cnt%2==1:
            cnt+=1
    print(f'#{test_case} {cnt}')
  • 시작하는 코드가 0000…이다.
  • 앞에서부터 원래의 bit와 다르면 이전 bit들까지 모두 반대로 바꾼다.
  • 즉 바꾼 횟수가 홀수이면 뒤의 bit들은 1, 짝수이면 0일 것이다.
  • 따라서 바꾼 횟수에 따라 cnt를 늘릴지 늘리지 않을지를 결정한다.
This post is licensed under CC BY 4.0 by the author.