자료구조와 알고리즘/개인적인 코딩테스트 관련 풀이

[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 교육과정 설계(큐)

얄루몬 2022. 7. 18. 10:37

from collections import deque

need = input()

for i in range(int(input())):
    plan = input()
    dq = deque(need)
    for p in plan:
        if p in dq:
            if p != dq.popleft():
                print(f"#{i+1} NO")
                break
    else:
        if dq:
            print(f"#{i+1} NO")
        else:
            print(f"#{i+1} YES")
  • 해당 과정에서 순서가 같더라도 중복입력으로 순서가 깨지면 안 된다.
    • need = abc이고 plan = dcabc가 오면 abc가 있기는 하지만 c가 먼저 오는 바람에 순서가 무너진다는 의미이다. 이 문제에서는 이것을 막아놓았다.
  • 입력 받은 plan에 순서에 문제가 없더라도 dq에 남아 있는 문자가 있다면 이는 조건을 만족시키지 못한 것이므로 NO를 출력한다,