자고일어나니코딩왕
자일코의 CODING
자고일어나니코딩왕
전체 방문자
오늘
어제
  • 분류 전체보기 (64)
    • [Linux]리눅스 (1)
    • [NETWORK]네트워크 (17)
    • [PS] 알고리즘문제풀이 (16)
    • [SQL] (13)
    • [ALGORITHM]알고리즘개념 (9)
    • [DATA_STRUCTURE]자료구조 (1)
    • [PYTHON]파이썬 (0)
    • [정보처리기사] (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 리눅스
  • virtualbox
  • 리눅스 #파일시스템 #디렉토리
  • 원격접속
  • BIOS #MBR #LILO #Kernel #init
  • ssh

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
자고일어나니코딩왕

자일코의 CODING

[프로그래머스,PS,해시][PYTHON] #2.전화번호 목록
[PS] 알고리즘문제풀이

[프로그래머스,PS,해시][PYTHON] #2.전화번호 목록

2020. 5. 12. 20:18

def solution(phone_book):
    
    for i in range(len(phone_book)):
        length = len(phone_book[i])
        for idx in range(i+1,len(phone_book)):
            if phone_book[i] == phone_book[idx][0:length]:
                return False
                break
    
            
            
    return True

[정리]

1.  간단하게 이중포문을 사용해서 리스트 원소의 크기만큼 배열을 slicing해서 비교해주었다.

     1-1. 위와같이 코드를 짰을때 테스트케이스 3개는 통과하지만 그뒤에 8번과 9번의 테스트 케이스를 통과하지 못했다.

     1-2. 원인분석 결과 ["97674223", "1195524421", "119"]와 같은 테스트 케이스를 입력받을때는 통과를 못하는 것이다 따라서 무조건                  정렬을 한 후에 내가 짠 코드를 사용해야 할 것이다. (sort()사용)

 

 

[최종코드]

def solution(phone_book):
    phone_book.sort() # 제일 작은 수가 앞에와야 정확한 결과가 나온다.
    for i in range(len(phone_book)):
        length = len(phone_book[i]) #원소의 처음부터 길이를 저장하고
        for idx in range(i+1,len(phone_book)): #모든 저장된 번호들에 대해서 
            if phone_book[i] == phone_book[idx][0:length]: #지정된 수의 크기만큼까지만 비교
                return False #하나라도 있다면 False 출력후 break로 빠져나오자
                break
    
            
            
    return True

 

[다른 분들의 풀이법]

 

1. zip() + startswith 메소드를 사용한 풀이

 

2. 정규식을 사용한 풀이 (import re) 

 

시간복잡도를 잘 생각해보고 사용하도록 하자

'[PS] 알고리즘문제풀이' 카테고리의 다른 글

[프로그래머스,PS,스택,큐][PYTHON] #1. 탑  (0) 2020.05.14
[프로그래머스,PS,해시][PYTHON] #4.베스트 앨범  (1) 2020.05.13
[프로그래머스,PS,해시][PYTHON] #3.위장  (0) 2020.05.13
[프로그래머스,PS,해시][PYTHON] #1.완주하지 못한 선수  (0) 2020.05.12
[백준알고리즘, PS][PYTHON] 2110번 공유기 설치  (0) 2020.04.08
    '[PS] 알고리즘문제풀이' 카테고리의 다른 글
    • [프로그래머스,PS,해시][PYTHON] #4.베스트 앨범
    • [프로그래머스,PS,해시][PYTHON] #3.위장
    • [프로그래머스,PS,해시][PYTHON] #1.완주하지 못한 선수
    • [백준알고리즘, PS][PYTHON] 2110번 공유기 설치
    자고일어나니코딩왕
    자고일어나니코딩왕
    열코!

    티스토리툴바