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를 출력한다,
'자료구조와 알고리즘 > 개인적인 코딩테스트 관련 풀이' 카테고리의 다른 글
[자료구조 활용][스택, 큐, 해쉬, 힙] - 애너그램(딕셔너리) (0) | 2022.07.21 |
---|---|
[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 단어찾기(딕셔너리) (0) | 2022.07.18 |
[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 응급실(큐) (0) | 2022.07.18 |
[자료구조 활용 ][스택, 큐, 해쉬, 힙] - 공주 구하기(큐) (0) | 2022.07.18 |
[자료구조 활용][스택, 큐, 해쉬, 힙] - 후위 연산(스택) (0) | 2022.07.17 |