-
프로그래머스(전화번호 목록)알고리즘 공부 2023. 2. 2. 04:56
https://school.programmers.co.kr/learn/courses/30/lessons/42577
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
오늘 풀었던 문제 중 가장 떠올리기 힘들었던 문제였다. N의 길이가 1,000,000이고 완전탐색을 이용하면 O(N^2)의 경우의 수가 발생해서 시간복잡도 문제가 발생하였다. 그래서 어떻게 해야할지 계속 고민하다 맨 앞의 숫자만 비교하면 되는거 아닌가? 라는 생각이 들었다. 그래서 정렬을 통해 맨 앞의 숫자가 비슷한 것 끼리 나열 후 양 옆의 수를 비교해주기로 했다.
def solution(phone_book): answer = True array=sorted(phone_book) for i in range(len(phone_book)-1): a=array[i];b=array[i+1] if len(a)<len(b): if b[:len(a)]==a: return False elif len(a)>len(b): if a[:len(b)]==b: return False return answer
이런 식으로 구현하였다. 문자열 정렬이기에 숫자 크기 순서대로 정렬이 되지 않고 비슷한 숫자끼리 정렬되는 것을 중간에 print 구문으로 확인하고 이대로 제출하였다. 오늘 풀지 못한 문제가 있는데 그 문제는 프로그래머스의 방금 그곡 문제이다.https://school.programmers.co.kr/learn/courses/30/lessons/17683
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해결 아이디어를 각 음 별로 딕셔너리를 통해 숫자로 변환해주면 어떨까라는 생각을 했는데 시간이 늦어 내일 다시 도전해보아야겠다.
내일은 영어, 딥러닝 공부를 해보려고 한다. 주간 계획을 짜고 나머지 요일동안 최선을 다해야겠다. 오늘은 여기까지!!
'알고리즘 공부' 카테고리의 다른 글
프로그래머스-[1차]캐시 (2) 2023.02.04 프로그래머스 호텔 대실 (2) 2023.02.03 알고리즘 공부 27일차 (0) 2023.01.27 알고리즘 공부 26일차 (2) 2023.01.26 알고리즘 공부 25일차 (0) 2023.01.25