문제풀이/Programmers

[문제] https://programmers.co.kr/learn/courses/30/lessons/12947 코딩테스트 연습 - 하샤드 수 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하 programmers.co.kr [풀이] 하샤드 수란 x 자릿수 합으로 x가 나누어 지는 수 이다. 18의 경우 18 -> 1 + 8 = 9, 18 % 9 = 0 이기 때문에 18은 하샤드 수이다. 11의 경우 11 -> 1 + 1 = 2, 11 % 2 != 0 이기 때문에 11은 하샤드 수가 아니다. 문제는 10의 자리 숫자와 1의 자리 숫자를 어떻게 효율..
[문제] https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr [풀이] 이 문제는 enumerate만 알면 쉽게 풀 수 있는 문제이다. enumerate 반복문 사용 시 몇 번째 반복문인지 확인할 수 있다 인덱스 번호와 컬렉션의 원소를 tuple형태로 반환 또, 시험은 최대 10,000 문제로 구성되어 있기 때문에 각 학생이 찍는 패턴을 반복하기 위해 % (나머지) 를 사용한다. 1번 학생의 0번 답이 맞았는지 구..
[문제] https://programmers.co.kr/learn/courses/30/lessons/86491 코딩테스트 연습 - 최소직사각형 [[10, 7], [12, 3], [8, 15], [14, 7], [5, 15]] 120 [[14, 4], [19, 6], [6, 16], [18, 7], [7, 11]] 133 programmers.co.kr [풀이] 각 직사각형 가로 세로 값 통틀어 큰 수들 중 가장 큰 수, 작은 수들 중 가장 큰 수를 구하면 된다. 문제에 나온 예로 구해보자면 _max 리스트와 _min 리스트를 선언한 후 [60, 50] 중 큰 값인 60을 max에, 작은 값인 50을 min에 담는다. 앞에 설명한 방법과 같이 모든 명함의 값을 정리하면 _max = [60, 70, 60, ..
[문제] 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 [풀이] 인덱스가 중요한 문제이다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 1. array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 2. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 3. 2에서 나온 배열의 3번째 숫자는 5입니다. 문제 설명에 나온 예로 일반화를 적용해 보았다. 1. array[1: 5]로 슬라이싱 할 ..
[문제] https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr [풀이] 최대한 많은 부서에게 물품을 지원해야 하기 때문에 신청 금액이 적은 부서부터 지원을 해야 한다. 따라서 부서별 신청 금액 리스트를 오름차순으로 정렬한 뒤 예산이 리스트 원소 전체 합보다 적은 경우, 리스트의 마지막 원소를 삭제해주었다. 마지막으로 반복문 조건이 통과된 리스트의 길이를 반환해준다. [코드] def solution(d, budget):..
[문제] https://programmers.co.kr/learn/courses/30/lessons/42862 코딩테스트 연습 - 체육복 점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번 programmers.co.kr [풀이] 이 문제의 핵심은 제한사항의 여벌 체육복을 가져온 학생이 체육복을 도난당했을 수 있습니다. 이때 이 학생은 체육복을 하나만 도난당했다고 가정하며, 남은 체육복이 하나이기에 다른 학생에게는 체육복을 빌려줄 수 없습니다. 부분이라고 생각한다. 한 학생이 lost와 reserve 리스트 둘 다에 포함된다면 그 학생은 두 리스트에서 빼주어야 한다. 집합..
[문제] 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부여한 표입니다. 예를 들면, SQL의 SI 직업군 언어 점수는 3점이지만 CONTENTS 직업군 언어 점수는 2점입니다. SQL의 HARDWARE, PORTAL, GAME 직업군 언어 점수는 0점입니다. 직업군 언어 점수를 정리한 문자열 배열 table, 개발자가 사용하는 언어를 담은 문자열 배열 languages, 언어 선호도를 담은 정수 배열 preference가 매개변수로 주어집니다. 개발자가 사용하는 언어의 언어 선호도 x 직업군 언어 점수의 총합이 가장 높은 직업군을 return 하도록 solution ..
[문제] 대학 교수인 당신은, 상호평가를 통하여 학생들이 제출한 과제물에 학점을 부여하려고 합니다. 아래는 0번부터 4번까지 번호가 매겨진 5명의 학생들이 자신과 다른 학생의 과제를 평가한 점수표입니다. 위의 점수표에서, i행 j열의 값은 i번 학생이 평가한 j번 학생의 과제 점수입니다. 0번 학생이 평가한 점수는 0번 행에 담긴 [100, 90, 98, 88, 65]입니다. - 0번 학생은 자기 자신에게 100점, 1번 학생에게 90점, 2번 학생에게 98점, 3번 학생에게 88점, 4번 학생에게 65점을 부여했습니다. 2번 학생이 평가한 점수는 2번 행에담긴 [47, 88, 95, 80, 67]입니다. - 2번 학생은 0번 학생에게 47점, 1번 학생에게 88점, 자기 자신에게 95점, 3번 학생에게..
서채리
'문제풀이/Programmers' 카테고리의 글 목록 (2 Page)