파이썬 알고리즘 165번 | [백준 14713번] 앵무새 - deque

Yunny.Log ·2022년 6월 9일
0

Algorithm

목록 보기
169/318
post-thumbnail

165. 앵무새

1) 어떤 전략(알고리즘)으로 해결?

  • deque!

2) 코딩 설명

<내 풀이>


import sys
from collections import deque

lis=deque()
n=int(sys.stdin.readline().rstrip())
for i in range(n) : 
    lis.append(deque(sys.stdin.readline().rstrip().split()))
#print(lis)

l=list(sys.stdin.readline().rstrip().split())
lcpy=l.copy()

for i in l :
    for j in lis :
        if i in j  : 
            if j[0]==i :
                lcpy.remove(j.popleft())
                break
            else :
                break
chk=0 
if lcpy :
    chk=1
    print("Impossible")
else : 
    for i in lis :
        if len(i)!=0 :
            chk=1
            print("Impossible")
            break
if chk==0:  
    print("Possible")


<내 틀렸던 풀이, 문제점>


import sys
from collections import deque

lis=deque()
n=int(sys.stdin.readline().rstrip())
for i in range(n) : 
    lis.append(deque(sys.stdin.readline().rstrip().split()))
#print(lis)

l=list(sys.stdin.readline().rstrip().split())

for i in l :
    #print("iiiiiiiiii : " , i)
    #print("here : " , lis)
    for j in lis :
        #print("j : ", j )
        if i in j  : 
            if j[0]==i :
                j.popleft()
            else :
                break
chk=0 
for i in lis :
    if len(i)!=0 :
        print("Impossible")
        chk=1
        break
if chk==0:  
    print("Possible")


  • 10%에서 틀림
  • 왜냐하면 나는 앵무새가 abcde 들을 말하고, L에 abcde + 그 외 단어들이 추가로 붙어도 되는 줄 알았기 떄문 ,

<반성 점>

  • 처음에 문제 이해를 잘못하고 삽질을 많이 했다,,
  • 문제파악이 먼저다! 문제를 먼저 잘 파악해보자

<배운 점>

0개의 댓글