Skip to content

[Week 6] DICTIONARY self review - ChaeheeKang-GitHubΒ #187

Description

@chaeheekang

DICTIONARY self review

1. ν•΄κ²° μ‹œλ„ κ³Όμ •

κ·Έλž˜ν”„λ₯Ό λ§Œλ“€μ–΄ μ–΄λŠ μ•ŒνŒŒλ²³μ΄ μ„ ν–‰λ˜μ–΄μ•Ό ν•˜λŠ”μ§€ ν•΄κ²°ν•˜κ³ μž ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

2. μž‘μ„±ν•œ μ½”λ“œμ™€ μ„€λͺ…

def makegraph(word,p):
    for j in range(1,N):
        i=j-1
        l=min(len(word[i]),len(word[j]))
        for k in range(l):
            if word[i][k]==word[j][k]:
                continue
            a=ord(word[i][k])-ord('a')
            b=ord(word[j][k])-ord('a')
            p[a][b]=1
            break
def dfs(x):
    check[x]=True
    for nx in range(26):
        if p[x][nx]==1 and not check[nx]:
            dfs(nx)
    ans.append(x)

def makeResult():
    ans.reverse()
    for i in range(26):
        for j in range(i+1,26):
            if p[ans[j]][ans[i]]:
                return False
    return ans

C=int(input())
for _ in range(C):
    N=int(input())
    word=[]
    ans=[]
    p=[[0]*27 for _ in range(27)]
    check=[False]*27
    for x in range(N):
        word.append(input().rstrip())
    makegraph(word,p)
    
    
    for i in range(26):
        if check[i]==False:
            dfs(i)
    if makeResult()==False:
        print("INVALID HYPOTHESIS")
    else:
        ans=list(map(lambda x : chr(ord('a')+x),ans))
        ans.reverse()
        print(''.join(ans))

3. λ§‰νžŒ 점 및 κ°œμ„  사항

좜λ ₯이 μ˜λ„λŒ€λ‘œ λ‚˜μ˜€μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.. λ‹€μ‹œ μ‹œλ„ν•΄λ΄μ•Όν•  것 κ°™μŠ΅λ‹ˆλ‹€.

Metadata

Metadata

Assignees

No one assigned

    Labels

    2κΈ°μŠ€ν„°λ”” 2κΈ°WAWrong Answer

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions