SWEA[1234] : 비밀번호

상은·2022년 2월 23일
0

SWEA

목록 보기
3/5

SWEA[1234번] 문제

for tc in range(1,11):
    N = list(map(str,input().split()))
    password = list(N[1]) # 비밀번호를 list 형태로 받아주기
    real_password = []

    for p in password:    # 비밀번호를 순차적으로 하나씩 꺼내기
        if real_password and p == real_password[-1]: # 새 리스트가 비어있지 않고, 마지막 값이 p와 같다면
            real_password.pop()                      # 가장 최근에 들어온 값과 짝이 맞으므로 pop
        else :
            real_password.append(p)                  # 새 리스트가 비어있거나, 마지막 값이 p와 같지 않다면 추가

    print(f'#{tc}',''.join(real_password))

문자열의 총 길이와, 문자열이 입력으로 주어진다.
문자열의 각 값을 비교하기 위해 list 형태로 변환시켰다.

그리고 새로운 리스트를 생성해주고, password를 for문으로 하나씩 꺼내며 ,
새로운 리스트가 비어있지 않고, password 리스트에서 들어온 값(p)이 새로운 리스트의 마지막 값과 같다면, 짝이 맞으므로 pop을 시키고,
새 리스트가 비어있지 않거나, password 리스트에서 들어온 값(p)이 새로운 리스트의 마지막 값과 같지 않다면 list에 append 시켜준다. 그렇게 for문을 돌고나면 real_password 엔 소거할 번호쌍이 없는 비밀번호가 완성된다.

join 함수를 써서 리스트를 출력시켜주면 된다 .

profile
Be the Best

0개의 댓글