프로그래머스 python
-
[프로그래머스/Python] 124나라의 숫자Algorithm/Programmers codes 2020. 5. 16. 20:50
문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다.124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. 제한사항 n은 500,000,000이하의 자연수 입니다. - 내 코드 def solution(n): if n 3): q,r = divmod(n-1,3) n = q division.append(r)..
-
[프로그래머스/Python] 탐욕법 level 1. 체육복Algorithm/Programmers codes 2020. 4. 3. 23:34
탐욕법 출체빈도 낮음 | 평균 점수 낮음 부분적인 최적해가 전체적인 최적해가 되는 마법! 언제나 통하지는 않지만, 이런 방법이 통하는 문제들을 만나보세요. 문제 1. 체육복 문제 설명 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다. 전체 학생의 수 n, 체육복을 도난당한 학생들의 번호가 담긴 배열 lost,..
-
[프로그래머스/Python] 정렬 level 2. 가장 큰 수Algorithm/Programmers codes 2020. 2. 20. 18:09
정렬 출체빈도 높음 | 평균 점수 높음 정렬을 이용해서 문제를 효율적으로 풀어보세요. 문제 2. 가장 큰 수 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이 중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,000 이하입니다. 정답이..
-
[프로그래머스/Python] 스택/큐 level 2. 프린터Algorithm/Programmers codes 2020. 2. 16. 16:36
스택/큐(Stack/Queue) 출체빈도 보통 | 평균 점수 높음 LIFO, FIFO, push & pop! 스택과 큐를 이용해서 문제를 풀어보세요. 문제 4. 프린터 문제 설명 일반적인 프린터는 인쇄 요청이 들어온 순서대로 인쇄합니다. 그렇기 때문에 중요한 문서가 나중에 인쇄될 수 있습니다. 이런 문제를 보완하기 위해 중요도가 높은 문서를 먼저 인쇄하는 프린터를 개발했습니다. 이 새롭게 개발한 프린터는 아래와 같은 방식으로 인쇄 작업을 수행합니다. 1. 인쇄 대기목록의 가장 앞에 있는 문서(J)를 대기목록에서 꺼냅니다. 2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면 J를 대기목록의 가장 마지막에 넣습니다. 3. 그렇지 않으면 J를 인쇄합니다. 예를 들어, 4개의 문서(A..
-
[프로그래머스/Python] 스택/큐 level 2. 탑Algorithm/Programmers codes 2020. 1. 31. 00:47
스택/큐(Stack/Queue) 출체빈도 보통 | 평균 점수 높음 LIFO, FIFO, push & pop! 스택과 큐를 이용해서 문제를 풀어보세요. 문제 1. 탑 문제 설명 수평 직선에 탑 N대를 세웠습니다. 모든 탑의 꼭대기에는 신호를 송/수신하는 장치를 설치했습니다. 발사한 신호는 신호를 보낸 탑보다 높은 탑에서만 수신합니다. 또한, 한 번 수신된 신호는 다른 탑으로 송신되지 않습니다. 예를 들어 높이가 6, 9, 5, 7, 4인 다섯 탑이 왼쪽으로 동시에 레이저 신호를 발사합니다. 그러면, 탑은 다음과 같이 신호를 주고받습니다. 높이가 4인 다섯 번째 탑에서 발사한 신호는 높이가 7인 네 번째 탑이 수신하고, 높이가 7인 네 번째 탑의 신호는 높이가 9인 두 번째 탑이, 높이가 5인 세 번째 탑의..
-
[프로그래머스/Python] 해시 level 3. 베스트앨범Algorithm/Programmers codes 2020. 1. 30. 17:39
해시(Hash) 출체빈도 높음 | 평균 점수 보통 해시는 Key-value쌍으로 데이터를 저장하는 자료구조입니다. 문제 4. 베스트앨범 문제 설명 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 plays가 주어질 때, 베스트 앨범에 들어갈 노래의 고유 번호를 순서대로 return 하도록 solution 함수..
-
[프로그래머스/Python] 해시 level 2. 위장Algorithm/Programmers codes 2020. 1. 29. 20:33
해시(Hash) 출체빈도 높음 | 평균 점수 보통 해시는 Key-value쌍으로 데이터를 저장하는 자료구조입니다. 문제 3. 위장 문제 설명 스파이들은 매일 다른 옷을 조합하여 입어 자신을 위장합니다. 예를 들어 스파이가 가진 옷이 아래와 같고 오늘 스파이가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야 합니다. 스파이가 가진 의상들이 담긴 2차원 배열 clothes가 주어질 때 서로 다른 옷의 조합의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 clothes의 각 행은 [의상의 이름, 의상의 종류]로 이루어져 있습니다. 스파이가 가진 의상의 수는 1개 이상 30개 이하입니다.같은 이름을 가진..
-
[프로그래머스/Python] 해시 level 1. 완주하지 못한 선수Algorithm/Programmers codes 2020. 1. 29. 16:01
백준 알고리즘으로 C언어 공부를 하고 있는데 파이썬도 틈틈이 해보기 위해 프로그래머스를 시작하기로 했다. 일단 첫 문제부터 푸는 것 자체는 어렵지 않은데 '효율성' 이 친구가 아주 어렵다. 정확성은 맞는데 효율성이 0점이라 결국 코드를 계속 고치고 고치고 다른 분들의 코드를 봐야 했다. 후. .. 해시(Hash) 출체빈도 높음 | 평균 점수 보통 해시는 Key-value쌍으로 데이터를 저장하는 자료구조입니다. 문제 1. 완주하지 못한 선수 문제 설명 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지..