문제
1411번: 비슷한 단어
첫째 줄에 단어의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에 한 줄에 하나씩 단어가 주어진다. 단어의 길이는 최대 50이고, N은 100보다 작거나 같은 자연수이다. 모든 단어의 길이는 같고, 중복
www.acmicpc.net
알고리즘
- 반복문을 통해 단어를 확인한다.
- 단어를 확인하는 과정으로는 단어의 각 알파벳을 확인하며 알파벳과 수를 dic에 추가한다.
- 현재 확인한 알파벳을 temp에 추가한다.
- dic에는 각 알파벳과 수가 추가되어 있을 것이고 temp에는 알파벳을 숫자로 바꾼 값들이 있을 것이다.
- temp와 반복문을 통해 같은 단어인지 확인하고 카운트한다.
코드
import sys
n = int(sys.stdin.readline())
temp = [[] for _ in range(101)]
dic = [{} for i in range(101)]
cnt = 0
# 반복문을 통해 단어를 확인
for i in range(n):
num = 0
m = str(sys.stdin.readline()).rstrip('\n')
# 반복문을 통해 알파벳을 확인하고
# 그 알파벳을 수와 같이 딕셔너리형으로 추가한다.
for j in m:
if j not in dic[i]:
dic[i][j] = str(num)
num += 1
# 현재 확인한 알파벳을 temp에 추가한다.
temp[i] += dic[i][j]
# 반복문을 통해 같은 단어라면 카운트한다.
for i in range(n):
for j in range(i + 1, n):
if temp[i] == temp[j]:
cnt += 1
print(cnt)
github
GitHub - junjange/CodingTest: 내가 푼 코딩 테스트 문제와 해결법
내가 푼 코딩 테스트 문제와 해결법. Contribute to junjange/CodingTest development by creating an account on GitHub.
github.com
'CodingTest > Baekjoon' 카테고리의 다른 글
[baekjoon] 백준 1706번(파이썬): 크로스워드 (0) | 2022.03.27 |
---|---|
[baekjoon] 백준 1421번(파이썬): 나무꾼 이다솜 (0) | 2022.03.26 |
[baekjoon] 백준 1326번(파이썬): 폴짝폴짝 (0) | 2022.03.22 |
[baekjoon] 백준 1283번(파이썬): 단축키 지정 (0) | 2022.03.21 |
[baekjoon] 백준 1182번(파이썬): 부분수열의 합 (0) | 2022.03.20 |