본문 바로가기

프로젝트들/코딩 테스트59

[코딩 테스트] 프로그래머스 - 정수 삼각형 (Lv.3) in Python 아래와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능함. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하라. 더 자세한 문제 설명- programmers.co.kr/learn/courses/30/lessons/43105 풀이 - 여느 동적 계획법 문제와 같이, 각 좌표에 다다를 수 있는 방법 중 최적의 것을 기록하는 방식으로 푼다. 동적 계획법 참고 -piaflu.tistory.com/75 - 위 그림과 같은 예시에서는, 각 좌표에 이를 수 있는 최적의 법 (가장 큰 숫.. 2021. 3. 12.
[코딩 테스트] 프로그래머스 - 등굣길 (Lv.3) in Python 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매개변수로 주어집니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수를 1,000,000,007로 나눈 나머지를 return 하도록 solution 함수를 작성. 예시: m = 4, n = 3, puddles = [[2, 2]] ~> answer = 4 더 자세한 설명 - programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programme.. 2021. 3. 12.
[코딩테스트] 프로그래머스 - 이중우선순위큐 (Lv.3) in Python 이중 우선순위 큐가 할 연산 operations가 매개변수로 주어질 때, 모든 연산을 처리한 후 큐가 비어있으면 [0,0] 비어있지 않으면 [최댓값, 최솟값]을 return 하도록 solution 함수를 구현하라. 연산의 종류는 1. "I 숫자": 숫자를 삽입 2. "D 1": 큐에서 최댓값 삭제 3. "D -1": 큐에서 최솟값 삭제 programmers.co.kr/learn/courses/30/lessons/42628 풀이 - 어차피 숫자를 하나씩 넣으니까, 새로운 숫자를 넣을 때마다 대소관계 비교하면서 넣으면 되겠다는 생각을 했다. - "I 숫자"연산 위해서는 bisect (이진탐색) 이용. : 대소관계 비교를 매 번 수행해야 하는데, 이 때 이진탐색을 이용하면 O(log n)복잡도를 띄며 효율적이.. 2021. 3. 11.
[코딩테스트] 프로그래머스 - 디스크 컨트롤러 (Lv.3) in Python 각 작업에 대해 [작업이 요청되는 시점, 작업의 소요시간]을 담은 2차원 배열 jobs가 매개변수로 주어질 때, 작업의 요청부터 종료까지 걸린 시간의 평균을 가장 줄이는 방법으로 처리하면 평균이 얼마가 되는지 return 하도록 작성. 더 자세한 설명 - programmers.co.kr/learn/courses/30/lessons/42627 코딩테스트 연습 - 디스크 컨트롤러 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를 programmers.co.kr 풀이 - 꽤 오랜 시간을 들였지만 두 개의 케이스를 통과하는 데 실패했다 ㅠ - 결국 검색을 통해 해결했다. (vel.. 2021. 3. 11.