Coding Test/Programmers
전화번호 목록 - 프로그래머스 - 파이썬 풀이
심재훈
2019. 7. 17. 17:00
문제 풀이
combinations을 써서 푸는 문제입니다.
두개씩 묶은 번호 중에
전화번호가 긴 것이 짧은 것을 포함하는 경우 False, 아니면 True입니다.
has_duplication 와 같은 함수를 만드는 연습과 combinations를 연습해보는 문제 같습니다.
함수를 작성할 때, return을 끝에 하나만 작성하면 디버깅 및 유지 보수가 쉬워집니다.
이 글의 반환값 문단을 참고하면 좋습니다.
해답 코드
from itertools import combinations
def has_duplication(a, b):
duplication = False
if len(a) >= len(b):
if a[:len(b)] == b:
duplication = True
else:
if b[:len(a)] == a:
duplication = True
return duplication
def solution(phone_book):
answer = True
for combination in combinations(phone_book, 2):
a, b = combination
if has_duplication(a, b):
answer = False
break
return answer
도움이 됐다면 공감버튼을 눌러주세요! 질문이 있다면 댓글 달아주세요!
코딩테스트 연습 - 전화번호 목록 | 프로그래머스
전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 r
programmers.co.kr