https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 해설 : 수열로 이루어진 패턴 3개가 주어질 때, 각 패턴으로 시험의 문제를 찍었을 경우 어떤 패턴의 사람이 점수가 가장 높은지 맞추는 문제이다. 풀이 : 문제의 정답들이 담긴 배열을 미리 최대 1만개까지 구현해놓은 후 이를 주어진 문제의 수만큼 비교하여 실제 맞춘 문제의 개수를 카운팅하고 최고점수를 받을 수 있는 패턴을 모두 출력한다. 1234567891011..
https://programmers.co.kr/learn/courses/30/lessons/42626 코딩테스트 연습 - 더 맵게 매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같 programmers.co.kr 해설 : 맵기 정도인 스코빌 지수들이 나열될 배열이 주어질 때 가장 낮은 두 스코빌지수를 섞어 새로운 스코빌 지수를 만든다. 이 때, 모든 스코빌 지수가 K 이상이 될 때까지 최소 횟수로 섞은 경우를 리턴하면 된다. 풀이 : heap을 사용하여 해결하면 된다. 처음 시도때는 두 min 값을 찾을 때, 매 번 새로 sort하여 구현하려 하였으나 시간초..
https://programmers.co.kr/learn/courses/30/lessons/42586 코딩테스트 연습 - 기능개발 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 programmers.co.kr 해설 : 현재 개발진도가 담겨있는 배열과 하루마다 진척되는 작업률이 담겨있는 배열이 주어질 때 하루 하루가 지나 작업률이 100%가 되면 작업이 완료된다. 하지만 이 작업은 batch system의 구조로 되어있어 앞의 작업이 먼저 끝나야 뒤의 작업을 완료할 수 있다. 여기서 작업이 완료되는 날마다 몇 개의 작업들이 완료되는지 출력하면 된다. 풀이 : 모..
https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 해설 : 참가선수와 완주선수들의 이름이 담긴 두 배열이 주어질 때 참가했지만 완주하지 못한 선수의 이름을 출력하면 된다. 해설 : 두 배열을 모두 정렬한다면 앞에서부터 zip으로 비교했을 때 같지 않은 값이 나오는 것이 완주하지 못한 선수 이름이므로 이때 배열의 원소를 출력하고 종료한다. 12def solution(participant, co..
https://programmers.co.kr/learn/courses/30/lessons/12899 코딩테스트 연습 - 124 나라의 숫자 programmers.co.kr 해설 : 주어진 10진수를 124나라의 숫자 규칙에 맞추어 바꾸면 된다. 풀이 : 3으로 나눈 나머지와 몫을 이용해 진수를 변환한다. 1234567def solution(n): numbers = ['4', '1', '2'] answer = '' while n: answer = numbers[n % 3] + answer n = n // 3 - (n % 3 == 0) return answercs
https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 해설 : 주어진 배열의 숫자들을 3개씩 더하여 만들 수 있는 수들 중 소수의 개수를 찾는 문제이다. 풀이 : Python의 내장 함수인 itertools 중 combination으로 주어진 배열에서 3개씩 고르는 모든 조합을 찾고 이 조합들의 sum이 소수인지 아닌지 판별하는 isPrime함수를 통해 소수의 개수를 카운트하였다. 1234567..
https://programmers.co.kr/learn/courses/30/lessons/70128 코딩테스트 연습 - 내적 길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 programmers.co.kr 해설 : a와 b 배열이 주어지는데 이 배열사이의 내적을 구하면 된다. 풀이 : 배열의 요소들을 zip 함수를 통해 묶음연산하고 이를 sum으로 더해줘서 해결하였다. 12def solution(a, b): return sum(x*y for x,y in zip(a,b))cs
https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 해설 : 두 개의 배열이 주어진다. 하나는 숫자들만 들어있고 하나는 true 또는 false의 값이 들어있다. 첫 배열의 각 숫자들에 두번째 배열의 부호들을 붙여 수식을 계산하면 된다. 풀이 : Python의 zip과 eval이라는 기능을 사용하였다. zip은 list가 여러 개일 때 각 list의 요소들을 묶어서 한 번에 계산할 수 있는..
https://programmers.co.kr/learn/courses/30/lessons/86051 코딩테스트 연습 - 없는 숫자 더하기 0부터 9까지의 숫자 중 일부가 들어있는 정수 배열 numbers가 매개변수로 주어집니다. numbers에서 찾을 수 없는 0부터 9까지의 숫자를 모두 찾아 더한 수를 return 하도록 solution 함수를 완성해주세요. programmers.co.kr 해설: 간단한 수학 문제이다. 0부터 9까지의 수들 중 주어진 배열에 있는 숫자들을 제외하고 더한 값을 출력하면 된다. 풀이: 0부터 9까지 더한 총 합은 45이므로 45에서 배열의 합인 sum(list)를 빼주면 된다. 12def solution(numbers): return 45-sum(numbers)cs>