BOJ 14713(python) : 앵무새


우리집 그린칙코뉴어는 맨날 나를 물었다.

문제 링크

Problem


예제 입력 1

3
i want to see you
next week
good luck
i want next good luck week to see you

예제 출력 1

Possible

예제 입력 3

2
please
be careful
pen pineapple apple pen

예제 출력 3

Impossible

앵무새가 말한 단어들을 앞에서 부터 조합하여 최종 문장을 만들 수 있는가? 에 대한 문제


Before

이번 주차에 배웠던 큐, 덱, 스택, 우선순위 큐, 힙에대해서 꼭 알고 가면 좋을 듯 하다.

큐와 덱이 뭐예요??
우선순위 큐와 힙, 이진트리는 뭘까요?


Solution

앵무새가 말한 단어들을 queue나 List에 집어 넣음
n개의 앵무새가 말을 함으로 2차원 리스트로 집어 넣는다.

bird = []
for _ in range(n):
    bird.append(list(map(str,sys.stdin.readline().split()))

답을 만들 수 있는지 for문을 돌면서 모든 앵무새의 0번째 원소들을 체크한다.

for item in dap:
    correct = False
    for idx in range(n):
        if len(bird[idx]) != 0:
            if item == bird[idx][0]:
                bird[idx].pop(0)
                correct=True
                break
    if not correct:
        break

전체소스

import sys

bird = []
dap = list()
n = int(sys.stdin.readline())
for _ in range(n):
    bird.append(list(map(str,sys.stdin.readline().split())))
dap = list(map(str,sys.stdin.readline().split()))

for item in dap:
    correct = False
    for idx in range(n):
        if len(bird[idx]) != 0:
            if item == bird[idx][0]:
                bird[idx].pop(0)
                correct=True
                break
    if not correct:
        break

left = 0
for line in bird:
    left += len(line)
if correct and left==0:
    print("Possible")
else:
    print("Impossible")

좋은 웹페이지 즐겨찾기