공부하고 기록하는, 경제학과 출신 개발자의 노트

프로그래머스 86

[Python] 프로그래머스. 야근 지수 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 | 프로그래머스 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도를 최소화하도록 일할 겁니다.Demi가 1시간 동안 작업량 1만큼을 처리할 수 있다고 할 때, 퇴근까지 남은 N 시간과 각 일에 대한 작업량 works에 대해 야근 피로도를 최소화한 값을 리턴하는 함수 solution을 완성해주세요. 제한 사항 works는 길이 programmers.co.kr heapq 자료구조로 해결할 수 있는 문제. python의 heapq 라..

[Python] 프로그래머스. 2018 카카오 recruit - 파일명 정렬 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/17686 코딩테스트 연습 - [3차] 파일명 정렬 | 프로그래머스 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예 programmers.co.kr Python의 정규식 관련 라이브러리인 re를 사용하면 쉽게 ..

[Python] 프로그래머스. 다음 큰 숫자 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/12911 코딩테스트 연습 - 다음 큰 숫자 | 프로그래머스 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 programmers.co.kr 효율성 조건이 그리 빡세지는 않은 것 같다. 조건대로 구현하면 금방 ..

[Python] 프로그래머스. 2018 카카오 recruit - n진수 게임 (Level 2)

https://programmers.co.kr/learn/courses/30/lessons/17687 코딩테스트 연습 - [3차] n진수 게임 | 프로그래머스 N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0부터 시작해서 차례대로 말한다. 첫 번째 사람은 0, 두 번째 사람은 1, … 열 번째 사람은 9를 말한다. 10 이상의 숫자부터는 한 자리씩 끊어서 말한다. 즉 열한 번째 사람은 10의 첫 자리인 1, 열두 번째 사람은 둘째 자리인 0을 말한다. 이렇게 게임을 진행할 programmers.co.kr 조건에 맞게 함수식을 만들어 답을 구현하는 문제. 문제 풀이를 ..

[Python] 프로그래머스. 정수 삼각형 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 | 프로그래머스 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr DP로 해결해야 하는 문제. 대각선 방향으로 오른쪽 / 왼쪽 아래로 값이 이동해야 하므로, value[row][idx] += max(value[row-1][idx-1], value[row-1][idx]) 형태의 점화식을 세울 수 있다. 예외사항은 '가장 왼쪽 값 (idx = 0) 과 가장 오른쪽 값 (idx = row)' 인 경우로, 이 경우는 최댓값을 구할 필요 없이 이전 row의 index 값을 그대로 더하면 된다.

[Python] 프로그래머스. 단어 변환 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 | 프로그래머스 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 있습니다. 2. words에 있는 단어로만 변환할 수 있습니다. 예를 들어 begin이 hit, target가 cog, words가 [hot,dot,dog,lot,log,cog]라면 hit -> hot -> dot -> dog -> programmers.co.kr 꽤 예전에 풀었던 문제. 그래서 코드가 효율적인 편은 아니다. 현재 단어..

[Python] 프로그래머스. 2020 카카오 recruit - 기둥과 보 설치 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 | 프로그래머스 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 처음에는 이걸 어떻게 풀어야 하나 접근을 못해서 꽤나 고생했는데, ..

[Python] 프로그래머스. 단속카메라 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/42884 코딩테스트 연습 - 단속카메라 | 프로그래머스 [[-20,15], [-14,-5], [-18,-13], [-5,-3]] 2 programmers.co.kr 차량의 진입 / 진출지점이 겹치면, 겹치는 지점의 공통범위로 감시카메라의 범위를 좁힌다. 감시카메라 범위에 포함되지 않을 경우 새 카메라를 설치해야 한다. 코딩테스트 초창기에 접했던 문제라서 푸는 데 정말 오래 걸렸었다.

[Python] 프로그래머스. 쿠키 구입 (Level 4)

https://programmers.co.kr/learn/courses/30/lessons/49995 코딩테스트 연습 - 쿠키 구입 | 프로그래머스 과자를 바구니 단위로 파는 가게가 있습니다. 이 가게는 1번부터 N번까지 차례로 번호가 붙은 바구니 N개가 일렬로 나열해 놨습니다. 철수는 두 아들에게 줄 과자를 사려합니다. 첫째 아들에게는 l번 바구니부터 m번 바구니까지, 둘째 아들에게는 m+1번 바구니부터 r번 바구니까지를 주려합니다. 단, 두 아들이 받을 과자 수는 같아야 합니다(1

[Python] 프로그래머스. 등굣길 (Level 3)

https://programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 | 프로그래머스 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다. 가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매 programmers.co.kr 학교에서 모눈종이에 각 칸마다 +1 하면서 풀던 문제와 동일한 로직이다. 왼..