티스토리 뷰

n = int(input())
a=[]
for _ in range(n):
    s = input()
    a.append(s)
a.sort()

i=0
while i<len(a):
    e=len(a[i])
    j=i+1
    while j<len(a):
        if a[i]==a[j][0:e]:
            a.pop(i)
            i-=1
            break
        j+=1
    i+=1
    
print(len(a))

 

풀이 : 정렬

 

1. 알파벳 오름차순 기준으로 리스트에 문자열을 넣어놓은 것을 정렬한다.

2. 순차적으로 탐색하며 만약 자기 자신이 다른 문자열의 접두사가 될 수 있다면 이 문자열은 리스트에서 삭제한다.

3. 위의 과정을 반복하다보면 모든 문자열을 탐색하게 된다.

4. 리스트에 남아있는 문자열들의 개수가 정답이다.

'Python > BAEKJOON' 카테고리의 다른 글

python 10825번 국영수 (백준)  (0) 2025.02.24
python 1758번 알바생 강호 (백준)  (0) 2025.02.24
python 1253번 좋다 (백준)  (0) 2025.02.23
python 2212번 센서 (백준)  (0) 2025.02.18
python 9024번 두 수의 합 (백준)  (0) 2025.02.18
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
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
27 28 29 30
글 보관함