백준 5397 / 키로거

dogit·2022년 6월 25일
0

백준문제

목록 보기
63/67

문제

풀이

커서의 위치를 기준으로
왼쪽에 위치하는 값을 저장하는 리스트인 l_list와
오른쪽에 위치하는 r_list를 각각 초기화하고
[].[] (.은 커서) 의 형태로 생각하고 코드를 짰다
'<'값을 만나면 r_list.append(l_list.pop())
'>'은 반대로 적용했다

코드

t = int(input())

for _ in range(t):
    l_list = []
    r_list = []
    pw = input()
    for i in pw:
        if i == '-':
            if l_list:
                l_list.pop()
        elif i == '<':
            if l_list:
                r_list.append(l_list.pop())
        elif i == '>':
            if r_list:
                l_list.append(r_list.pop())
        else:
            l_list.append(i)
    l_list.extend(reversed(r_list))
    print(''.join(l_list))

새로 알게된 지식

expend() VS extend()
append는 그 자체의 원소를 넣고자하는 리스트 마지막 인덱스에 넣고
extend는 iterable의 각 항목들을 넣는다.

출처

문제 : https://www.acmicpc.net/problem/5397
expend() VS extend() : https://m.blog.naver.com/wideeyed/221541104629

profile
느리더라도 꾸준하게

0개의 댓글