728x90
반응형

알고리즘/프로그래머스 26

[파이썬] 프로그래머스_최소직사각형

문제 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 해설 이 문제는 가로, 세로에 사로잡히지 않는게 좋다. 명함을 가로로 눕히든 세로로 세우든 지갑에 넣기만 하면 되기 때문에 각 가로, 세로 값을 정렬해서 큰 값을 가로로 / 작은 값을 세로로 두면 된다. 그 후, 가로 값, 세로 값 중에서 가장 큰 값을 골라 그 둘을 곱해주기만 하면 된다. 나는 sizes 배열에서 w,h 배열을 하나씩 꺼내 w_max, h_m..

[파이썬] 프로그래머스_예산

문제 https://programmers.co.kr/learn/courses/30/lessons/12982# 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 해설 이 문제는 예산이 정해진 회사에서 최대한 많은 부서의 물품을 구매해주도록 하는 문제이다. 최대한 많은 부서의 물품을 구매하려면 우선 정렬을 해주는게 편하다. 만약 신청 금액의 합이 예산과 같다면 for문을 돌지 않아도 바로 값이 나오도록 해준다. 같지 않으면 for문을 돌며 지원 가능한 부서의 수를 구해주면 된다. 코드 -파이썬 def solution(..

[파이썬] 프로그래머스_완주하지 못한 선수(해시)

문제 https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr 해설 해시를 사용하진 않았지만.. 이 문제는 두 배열을 정렬 시켜서 각 인덱스의 값이 같은지 비교하면 된다. 값이 다르면 participant 배열의 인덱스를 리턴해주면 된다. 만약 가장 마지막 선수가 완주하지 못했다면 비교되지 않아서 아무런 값도 리턴되지 않기 때문에 가장 마지막 선수가 완주하지 못한 경우를 생각해줘야 한다. 이 경우엔..

[파이썬] 프로그래머스_소수 만들기

문제 https://programmers.co.kr/learn/courses/30/lessons/12977 코딩테스트 연습 - 소수 만들기 주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 programmers.co.kr 해설 이 문제는 주어진 숫자 중 3개의 수를 더해서 소수가 되는 경우의 개수를 구하는 문제이다. 그럼 소수인지를 구하는 함수를 따로 만들어두면 코드를 보기 좀 더 편할 것이다. isPrime 함수에서 해당 수가 2 ~ num까지 나누기를 했을 때 나누어지는 수가 있는지 찾아 소수인지 아닌지 판단한다. 밑의 solution 에선 combi..

[파이썬] 프로그래머스_음양 더하기

문제 https://programmers.co.kr/learn/courses/30/lessons/76501 코딩테스트 연습 - 음양 더하기 어떤 정수들이 있습니다. 이 정수들의 절댓값을 차례대로 담은 정수 배열 absolutes와 이 정수들의 부호를 차례대로 담은 불리언 배열 signs가 매개변수로 주어집니다. 실제 정수들의 합을 구하여 re programmers.co.kr 해설 이 문제는 정수의 절댓값이 담긴 배열 absolutes가 있고, 각 정수들의 부호를 담은 boolean 배열 signs가 있다. 그냥 absolutes 배열에 담긴 각 정수들의 합을 구하면 된다. signs[i]가 True면 양수 / False면 음수이므로 양수일 때는 + / 음수일 때는 -를 해서 값을 구해주면 끝이다. 코드 ..

[파이썬] 프로그래머스_타겟 넘버(DFS/BFS)

문제 https://programmers.co.kr/learn/courses/30/lessons/43165 코딩테스트 연습 - 타겟 넘버 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 programmers.co.kr 해설 DFS/BFS 문제는 항상 잘 못푸는데, 이 문제 역시 다른 코드를 보고 나서야 어떻게 풀어야 하는지 감을 잡았다.. 이 문제는 numbers 배열에 담긴 숫자들을 더하거나 / 빼서 target과 같은 값이 나오도록 만드는 방법의 수를 구하는 문제이다. 그럼 우선 더하기 / 빼기 밖에 없으니 직접 해보면 된다. numbers :..

728x90
반응형