1473.オウム


質問する



コード#コード#

N = int(input())
cnt, tcnt = 0, 0
log = [0]*N

word = [] # 앵무새가 말할 문장 들
for _ in range(N):
    temp = input().split()
    cnt += len(temp) # 총 몇개의 단어로 이루어져 있는지 계산
    word.append(temp)
    
sent = input().split() # 실제로 들은 문장
while sent:
    p = sent.pop(0) # 하나씩 뽑아가며 word 순회
    tcnt += 1 # 총 받아적은 단어 수를 알기 위함
    for j in range(N): # word안에 비교
        flag = False
        if log[j] <= len(word[j])-1 and p == word[j][log[j]]:
        # 앵무새가 말할 문장 중 몇번째를 말해야되는지 기록한것과
        # 지금 pop한게 같으면
            word[j][log[j]] = 0 # 어.. 이거 필요없는거임
            log[j] += 1 # 앞으로 몇번째를 말해야되는지 기록
            flag = True
            break
            
        if j == (N-1) and flag == False:
        # word 다 돌았는데도 맞는게 없으면
            print('Impossible')
            exit(0)
            
if sent or cnt != tcnt: print('Impossible')
else: print('Possible')

に答える


ちょっと、効率的ではありませんが、最初はしょっぱいものがもったいないので厚めに貼ってあります.
今のところ和弦を思い切って捨てるのは難しい...夢中になる.結論は正解が出ていればいい.
再包装が必要ではなく、必要です.
まずはflag部分から...私はちょうど解いて、私はどうしてこのようにすることを理解していないで、ほほほ