프로그래머스 3

징검다리 건너기

프로그래머스 Lv.3 이진탐색으로 풀이한 문제인 징검다리 건너기 문제입니다. 해당 문제의 링크입니다. 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 각 징검다리는 한명이 건너게 되면 건널 수 있는 사람의 수가 줄어들게 되며, 0이 되면 더 이상 해당 징검다리를 건널 수 없습니다. 사람들은 k개의 징검다리를 건너뛸 수 있으므로 k개 이상이 연속으로 0이 되면, 건널 수 없게 됩니다. 징검다리의 배열의 길이는 200,000까지 되며, 200,000,000까지의 값을 가질 수 있으므로 이진탐색으로 풀이해야 함을 유추할 수 있습니다. check 함수를 선언한 후, 이를 이용해 이진 탐색 코드를 작성하였다. def solution..

배운 것 2022.05.30

프로그래머스 자물쇠와 열쇠

프로그래머스 Lv3 자물쇠와 열쇠 문제입니다. 해당 문제 링크의입니다. 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 문제의 골자는 2차원 배열을 회전시키고 이동시켜 조건에 맞는 case가 존재하는 지를 탐사하는 것입니다. 전 해당 문제를 2차원 배열을 생성하는 방식이 아닌, 비교해야 할 값만을 따로 모아 배열을 만들고, 배열에 해당하는 원소들을 비교하는 식으로 하였습니다. 다음은 제가 풀이한 코드입니다. def solution(key, lock): lk, ll = len(key), len(lock) holes = list() up = list() for ..

배운 것 2022.02.03

프로그래머스 등굣길

프로그래머스 Lv.3 동적 프로그래밍 문제인 등굣길 문제입니다. 해당 문제의 링크입니다. 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문제의 골자는 집에서 학교까지 가는 최단 경로의 수를 구하되, 웅덩이들이 존재하여 웅덩이를 지나지 않는 최단 경로만을 계산하는 것입니다. 이러한 문제는 경우의 수 합연산으로 학창 시절에 풀어본 경험이 있어, 거기서 아이디어를 얻었습니다. 해당 지점까지 최단거리로 가기 위해서는 아래나 오른쪽으로만 이동할 수 있고, 따라서 해당 지점에서 도착하는 경우의 수는 해당 지..

배운 것 2022.01.26