문제링크
https://programmers.co.kr/learn/courses/30/lessons/42577?language=python3#
내 풀이
간신히 통과했다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
def solution(phone_book):
answer = True
for i in phone_book :
len_num = len(i)
com_list = [] #비교할 값
for j in phone_book : # i보다 긴 것들만 com_list에 append
if i != j : # 같은 값일 때는 제외 함
if len_num <= len(j) :
for k in com_list : # com_list와 i의 비교
# print(k)
while len(k) >= len_num : # k 가 i보다 길때까지만 비교한다
if i == k :
answer = False
return answer
k = k[:-1]
# print(k)
return answer
|
다른사람 코드 1번
1
2
3
4
5
6
7
8
9
10
11
12
13
|
def solution(phone_book):
test = [123,123456,4234]
for i in range(len(phone_book)-1):
if(phone_book[i+1].find(phone_book[i]) != -1):
print(test) # 숫자와 문자열은 정렬방식이 다르다, 위처럼 단순히 2개만 비교해도 가능한 이유는 문자열이 정렬되었기 때문.
print(phone_book)
print(phone_book[i+1])
print(phone_book[i])
return False
return True
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter
|
다른사람코드 2번
1
2
3
4
5
6
7
8
|
def solution(phoneBook):
answer = True
for x in phoneBook:
for y in phoneBook:
if y != x:
if y.find(x) == 0:
return False
return answer
|
매우 간결하다. find 함수는 발견된 문자열의 인덱스값을 불러온다.
ex) y = "aabc" 일때 y.find("ab") 를 입력하면 "ab"의 인덱스 값인 1출력
[알고리즘 풀이] 프로그래머스 : 소수 찾기, Level2(완전탐색) (0) | 2019.04.12 |
---|---|
[알고리즘 풀이] 프로그래머스 : 체육복, Level2(탐욕법) (0) | 2019.04.12 |
[알고리즘 풀이] 프로그래머스 : K번째수, Level1(정렬) (0) | 2019.04.12 |
[알고리즘 풀이] 프로그래머스 : 더 맵게, Level2(Heap) (0) | 2019.04.12 |
[알고리즘 풀이] 프로그래머스 : 탑, Level2(스택/큐) (0) | 2019.04.09 |