코딩테스트/Python 문제풀이
[프로그래머스] 더 맵게
https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr heap을 이용하는 문제입니다. 우선 문제부터 간단하게 요약해보면, 매번 매운음식의 array 안에서 가장 덜매운 음식과, 두번째로 덜매운 음식을 꺼내서 섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2) 다음과 같이 섞은후 다시 넣어주는 과정을 반복해 모든 음식이 일정량 보다 매워..
[프로그래머스] 카펫
https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 약수를 이용해 모두 탐색하는 문제입니다. 우선 문제부터 간단하게 요약해보면, 위의 그림과 같이 가운데는 노란색 그리고 가장 바깥쪽 테두리 한줄만 갈색인 카펫이 있습니다. 이 때, 노란색 블록의 수와 갈색블록의 수를 알 때, 카펫의 크기를 구하는 문제입니다. 노란색 블록의 수의 약수를 구한 다음 그 약수를 사용하여 각각의 경우에 대해 탐색해 갈색 블록의 수와 ..
[프로그래머스] K번째수
https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr python 라이브러리의 sort를 사용해서 풀면 되는 문제입니다. 문제부터 요약하면, 배열과 명령들이 주어지는데 각 명령 [i, j, k]는 array의 i~j번째 까지의 원소중 k번째를 요구합니다. 이렇게 각각의 요구사항들을 list에 넣어서 return 해야하는 문제입니다. 각각의 command에 대해 답을 구한후 append 해서 return 시키면 되는 간단한 문제입니다. 실제 구현은 아래와 같습니다. def solut..
[프로그래머스] 디스크 컨트롤러
https://programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr heap을 이용하는 문제라고 하는데 heap을 사용하지 않고 풀었습니다. 아무튼 풀이과정을 한번 적어보겠습니다. 우선 문제부터 요약하면, 위의 그림처럼 task가 disk에 들어오게 되는데 이러면 disk는 이 task 들을 scheduling해야 합니다. 이때, 각 작업들의 요청부터 종료까지 걸린 시간의 평균의 최솟값을 return 해야 합니다. 즉 so..
[프로그래머스] 기능개발
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr queue를 이용하는 문제입니다. 우선 문제부터 요약하면, 작업들의 진행상황과 일을 하는 속도가 나옵니다. 이것을 통해 작업들이 배포되어야 하는 날짜를 알 수 있습니다. 이때, 작업들의 list가 배포되어야 하는 우선순위대로 구성 되어 있을 때, 각 배포마다 몇개의 작업들이 release 되는지를 구해야 합니다. 예시를 들면, 만약 작업 1, 작업 2, ..
[프로그래머스] 전화번호 목록
https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr hash를 이용하는 문제이지만 이전 문제와 마찬가지로 hash를 안사용해도 충분히 효율성 테스트 까지 통과합니다. 문제부터 요약하면, phone_book에 전화번호들이 있는데 이중에서 어떤 번호가 다른 번호의 접두사가 될 수 있다면 False, 전부 접두사가 될 수 없다면 True를 return 해야 합니다. 즉 solution(phone_book)에 pho..
[프로그래머스] 완주하지 못한 선수
https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr hash 로 분류되어 있는데 hash를 사용하지 않고도 효율성 까지도 다 통과합니다. 우선 문제부터 요약해보자면, 마라톤에 선수들이 참여하게 되는데 이때, 단 한명만이 완주를 못합니다. 이 완주하지 못한 선수가 누구인지를 구하는 문제입니다. 즉 solution(participant, completion)에 participant : 참여자들의 ..