본문 바로가기
백준

백준 1411 비슷한 단어

by 콩순이냉장고 2020. 8. 10.

문제 URL : https://www.acmicpc.net/problem/1411

 

1411번: 비슷한 단어

첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 각각의 단어는 모두 다르다.

www.acmicpc.net

문제접근법: 우선 길이가 같으면 두쌍이 비슷한단어라고 가정하고 비슷한 단어가 만들어지는지 확인한다고 생각했습니다. aaa bbb 가 있을때 a를 b로 바꿔주는 alphabet visit1배열에 넣고 

b는 a로 바꿔주는 alphabet visit2 배열에 넣는다음 만들었던 단어라면 서로 같은지 다른지만  확인하면 되는문제입니다.

 

파이선 소스 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# -*- coding: euc-kr -*- 
# By 콩순이냉장고
n=int(input())
list=[input() for _ in range(n)]
cnt=0
for i in range(0,n-1) :
    for j in range(i+1,n) :
        s1=list[i]
        s2=list[j]
        flag =True
        if len(s1)==len(s2):
            visit1=[0]*26
            visit2=[0]*26
            for k in range(len(s1)):
                idx1=ord(s1[k])-ord('a')
                idx2=ord(s2[k])-ord('a')
                
                if visit1[idx1]==0 and visit2[idx2]==0:
                    visit1[idx1]=s2[k]
                    visit2[idx2]=s1[k]
                elif visit1[idx1]!=s2[k]:
                    flag=False
                    break
        if flag:
            cnt+=1        
print(cnt)
cs

 

궁금한점 혹은 모르는점이 있다면 언제든지 댓글을 이용해주시길 바랍니다.

 

 

 

 

'백준' 카테고리의 다른 글

백준 11576 Base Conversion  (0) 2020.08.13
백준 1927 놀라운 문자열  (0) 2020.08.13
백준 10769 행복한지 슬픈지  (0) 2020.08.10
백준 16943 숫자 재배치  (0) 2020.08.07
백준 1956 운동  (0) 2020.08.07