1. 문제
https://www.acmicpc.net/problem/1411
1411번: 비슷한 단어
첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 모든 단어의 길이는 같고, 중복
www.acmicpc.net
2. 풀이
import sys
input = sys.stdin.readline
# n : 주어지는 문자열 개수
n = int(input())
# n_l : 문자열 저장 리스트
n_l = []
for i in range(n):
n_l.append(input())
# print(n_l)
# simStrCnt : 비슷한 단어 쌍의 수
simStrCnt = 0
for i, v in enumerate(n_l):
# print("i :", i)
for j in n_l[i+1:]:
str1 = v
str2 = j
# print("str1 :", str1)
# print("str2 :", str2)
while True:
if len(str1) != len(str2):
break
elif len(str1) == 0:
# print("similar")
simStrCnt += 1
break
str1_idx_zero = str1[0]
str2_idx_zero = str2[0]
if str1.count(str1_idx_zero) != str2.count(str2_idx_zero):
break
while True:
findIdx = str1.find(str1_idx_zero)
if findIdx == -1:
break
str1 = str1[:findIdx] + str1[findIdx + 1:]
str2 = str2[:findIdx] + str2[findIdx + 1:]
# print("trans_str1 :", str1)
# print("trans_str2 :", str2)
# print()
str2 = str2.replace(str2_idx_zero, "")
print(simStrCnt)
'알고리즘 공부 > 백준' 카테고리의 다른 글
(Python)백준 코딩테스트 연습 - 뒤집기 II(1456) (0) | 2023.04.01 |
---|---|
(Python)백준 코딩테스트 연습 - 나무꾼 이다솜(1421) (0) | 2023.03.31 |
(Python)백준 코딩테스트 연습 - 에디터(1406) (0) | 2023.03.25 |
(Python)백준 코딩테스트 연습 - 폴짝폴짝(1326) (0) | 2023.03.18 |
(Python)백준 코딩테스트 연습 - 팰린드롬 만들기(1254) (0) | 2023.03.15 |