티스토리 뷰

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com


1. 문제 내용

 

 

2. 접근 방식

  • 비밀번호의 양쪽 끝이 0일 수 있으므로 문자열로 처리한다. (int 변환 시 맨 앞과 맨 뒤 0이 사라지기 때문)

더 이상 소거할 번호 쌍이 없을 때까지 비밀번호를 처음부터 끝까지 검사하면서 번호 쌍 제거 행위를 계속 반복한다. 더 이상 소거할 번호 쌍이 없는 것을 판단하기 위해 count 변수를 사용하여 비밀번호 내 번호 쌍 개수를 세었고, count == 0일 시 번호 쌍 검사의 반복을 종료한다.

 

 

3. 정답 코드

T = 10

for test_case in range(1, T + 1):
    n, password = input().split()
    
    while True :
        count = 0
        saved = password[0]
        
        for index, c in enumerate(password) :
            if index == 0 : continue
            if saved != c :
                saved = c
            else :
                temp = password[:index-1] + password[index+1:]
                count += 1
                
        if count > 0 :
            password = temp
        else :
            break
            
    print(f'#{test_case} {password}')
728x90