1. 문제 출처
https://www.acmicpc.net/problem/1141
2. 풀이
N = int(input())
input_list = [0] * N
for idx in range(N):
input_list[idx] = input()
# 글자 길이 순으로 버블 정렬
for i in range(N):
min_len = len(input_list[i])
min_idx = i
for j in range(i,N):
if min_len >len(input_list[j]):
min_len = len(input_list[j])
min_idx = j
if min_idx != i:
temp = input_list[i]
input_list[i] = input_list[min_idx]
input_list[min_idx] = temp
# 시작 index
start_idx = 0
while True:
# 만약 끝에 다다르면 input_list의 길이를 출력
if (start_idx+1) == len(input_list):
print(start_idx+1)
break
# start_idx 문자열 start에 저장
start = input_list[start_idx]
for idx in range(start_idx+1,len(input_list)):
# 만약 자신을 제외한 나머지 원소에 자신과 같거나 자신으로 시작하는 값이 있으면
# 리스트에서 값을 뺸다
if input_list[idx].startswith(start):
input_list.pop(start_idx)
# 전체 크기가 1줄었으므로 start_idx위치에 있는 값이 다음 으로 선택할 값이 된다.
# 그러므로 start_idx-1을 해주어 +1을 해주어도 start_idx값이 되도록 한다.
start_idx -=1
break
# 다음 인덱스를 선택
start_idx += 1
차후에 알고리즘 수정이 필요 할 것 같음
'알고리즘' 카테고리의 다른 글
1439-백준-뒤집기 (0) | 2023.02.13 |
---|---|
2618- 백준 - 경찰차 (0) | 2023.02.10 |
1254-백준-팰린드롬 만들기 (0) | 2023.02.09 |
9996-백준-한국이 그리울 땐 서버에 접속하지 (0) | 2023.02.08 |
9536-백준-여우는 어떻게 울지? (0) | 2023.02.06 |