728x90

Python 3

[프로그래머스] 가장 큰 수

문제 : 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 풀이 : 직관적으로는 앞자리가 큰 순서대로 정랼하는게 핵심이지만, 단순히 정렬하면 ["34","30","3"] -> 34303 이지만, 실제 정답은 34330 이기 때문에 단순히 정렬하면 안된다. 이 문제는 문자열을 3번 반복해서 비교하는 방식으로 풀면된다 ( 3-> 333 , 30 -> 303030)파이썬은 문자열을 비교할 때 전체 길이를 보지 않고, 왼쪽 첫 번째 글지부터 하나씩 비교하기 때문에 가능하다333 > 3030..

알고리즘 2026.02.26

[프로그래머스] 베스트앨범

문제: 1. 속한 노래가 많이 재생된 장르를 먼저 수록합니다.2. 장르 내에서 많이 재생된 노래를 먼저 수록합니다.3. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수를 완성하세요. 코드: # 장르별로 카운팅 # {classic : 1450, pop : 3100}# {classic : 500, 150, 800} -> 800,500# {pop : 600, 2500} -> 2500, 600 # Counter 함수를 이용해서 장르별로 카운팅 한 뒤 # dic을 활용해서..

카테고리 없음 2026.02.20

[프로그래머스] 전화번호 목록

문제 : 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요. 풀이 : 1. 시간 초과 코드 - 이중 루프를 돌아야 하기 때문에 시간 초과 발생 - phone_book[j].startswith(temp): 부분에서 temp.startswith( phone_book[j] 상황도 고려해야 하므로 적절한 코드가 아님 def solution(phone_book): for i in range(len(phone_book)): temp = phone_book[i] for j in rang..

알고리즘 2026.02.20
728x90