강의로 돌아가기
먹는거야?

[파이썬] '해시'사용한 모범 답안을 "다른 사람 풀이"란에 올려주실 수 없나요?

파이썬으로 풀이한 거의 대부분의 답변이 주어진 문자열 배열을 정렬한후 패턴탐색을 통해
문제를 해결하고 있습니다.

프로그래머스에서 이문제의 카테고리를 '해시'에 할당한 만큼
해시 자료구조를 사용하여 좀더 효율적으로 풀 방법도 있으리라고 생각되는데요...

코딩테스트 연습 / 해시 라는 주제에 걸맞는 모범 답안을 다른 사람 풀이란에 올려주실 수 없나요?

2 개의 답변
지영석

모범답안이라고는 할 수 없지만 해시 사용해서 문제 풀어봤습니다.
다른 사람 풀이에서 제 소스코드 참고해보세요.

먹는거야?

답변 고맙습니다.

지영석님 답안을 보고 아이디어가 생겨 조금 다르게 구현해보았습니다만
이게 해시를 제대로 사용한건지는 잘 모르겠네요.
어쨌든 프로그래머스의 정확성과 효율성 테스트는 통과한 코드입니다. ( 18.09.15)
잘못된 부분이 있으면 조언 부탁드립니다.

def solution(phone_book):
    phone_book = sorted(phone_book, key=lambda x: len(x))
    answer = True
    for i, phone1 in enumerate(phone_book):
        hash_map = {}
        for phone2 in phone_book[i+1:]:
            hash_map[phone2[:len(phone1)]] = phone2
        if phone1 in hash_map:
            answer = False
            break
    return answer
  • 먹는거야?
    그런데.. key: value중 value 가 별 의미가 없음. hash_map 을 dictionary가 아니라 list로 해도 상관없을듯... 먹는거야? 2018.09.15 02:22
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.