Home

[프로그래머스] Level3 - 등굣길

> 문제설명 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = 4, n = 3 인 경우입니다. 가장 왼쪽 위, 즉 집이 있는 곳의 좌표는 (1, 1)로 나타내고 가장 오른쪽 아래, 즉 학교가 있는 곳의 좌표는 (m, n)으로 나타냅니다. 격자의 크기 m, n과 물이 잠긴 지역의 좌표를 담은 2차원 배열 puddles이 매개변수로 주어집니다. 오른쪽과 아래쪽으로만 움직여 집에서 학교까지 갈 수 있는 최단경로의 개수를 1,000,000,007로 나눈...

Read more

[프로그래머스] Level3 - 길 찾기 게임

> 문제 2019 카카오 블라인드 채용 문제 문제 : [길 찾기 게임] ### > 문제풀이 PriorityQueue(우선순위큐)와 Queue를 사용하여 그래프를 그렸다. 그래프 그리는데 시간이 조금 걸렸지만, 그래프를 그린 후 전위,후위는 어렵지 않았다. 소스는 다음과 같다. package level3; import java.util.*; public class Solution_길찾기게임 { public static void main(String[] args) { String s = "[[5,3],[11,5],[13,3],[3,5],[6,1],[1,...

Read more

[프로그래머스]Level3 - 자물쇠와 열쇠

> 문제 2020 카카오 블라인드 채용 문제 문제 : [자물쇠와 열쇠] > 풀이 좌물쇠의 크기를 열쇠가 최소 한블럭이 걸칠 수 있도록 구현하였다. 전체 맵의 크기는 N + (M-1)*2 (0,0) 부터 (맵크기 - M + 1, 맵크기 - M + 1) 까지 키를 90도씩 돌려놓고 탐색하였다. 그리고, 위의 전체 맵에서 좌물쇠 범위(위 배열에서 1로 되어있는 부분)만 체크하였다. 소스는 다음과 같다. package level3; public class Solution_자물쇠와열쇠 { public static void main(String[] args) { ...

Read more

[프로그래머스] Level4 - 무지의 먹방 라이브

> 문제 2019 카카오 겨울 인턴십 문제 문제 : [무지의 먹방 라이브] > 문제풀이 풀이 핵심은 마지막까지 회전하고, 나머지 값을 인덱스로 음식을 찾아 리턴해주었다. 0 <= k-(m*n) < n 식은 나머지 값을 찾기 위해 회전수를 구하는 식으로, 0 <= k - m(회전수)*n(음식수) = 나머지 < n(음식수), (k-n)/n < m(회전수) <= k/n에서 m(회전수)의 최댓값을 도축하여 회전하였다. 이때 음식의 크기가 회전수보다 작을 수 있기 때문에, 마이너스(-)된 만큼 k에 추가해주었다. k값이 남은...

Read more

[프로그래머스]Level3 - 순위

> 문제설명 n명의 권투선수가 권투 대회에 참여했고 각각 1번부터 n번까지 번호를 받았습니다. 권투 경기는 1대1 방식으로 진행이 되고, 만약 A 선수가 B 선수보다 실력이 좋다면 A 선수는 B 선수를 항상 이깁니다. 심판은 주어진 경기 결과를 가지고 선수들의 순위를 매기려 합니다. 하지만 몇몇 경기 결과를 분실하여 정확하게 순위를 매길 수 없습니다. 선수의 수 n, 경기 결과를 담은 2차원 배열 results가 매개변수로 주어질 때 정확하게 순위를 매길 수 있는 선수의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 선수의 수는 1명 이상 100명 이하입니다. 경기 결...

Read more

[프로그래머스]Level3 - N으로 표현

> 문제설명 아래와 같이 5와 사칙연산만으로 12를 표현할 수 있습니다. 12 = 5 + 5 + (5 / 5) + (5 / 5) 12 = 55 / 5 + 5 / 5 12 = (55 + 5) / 5 5를 사용한 횟수는 각각 6,5,4 입니다. 그리고 이중 가장 작은 경우는 4입니다. 이처럼 숫자 N과 number가 주어질 때, N과 사칙연산만 사용해서 표현 할 수 있는 방법 중 N 사용횟수의 최솟값을 return 하도록 solution 함수를 작성하세요. 제한사항 N은 1 이상 9 이하입니다. number는 1 이상 32,000 이하입니다. 수식에는 괄호와 사칙연산만 가능하며 나누기 연산에...

Read more

[프로그래머스]Level3 - 디스크컨트롤러

> 문제설명 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) ...

Read more

[프로그래머스]Level3 - 기둥과보설치

> 문제설명 빙하가 깨지면서 스노우타운에 떠내려 온 죠르디는 인생 2막을 위해 주택 건축사업에 뛰어들기로 결심하였습니다. 죠르디는 기둥과 보를 이용하여 벽면 구조물을 자동으로 세우는 로봇을 개발할 계획인데, 그에 앞서 로봇의 동작을 시뮬레이션 할 수 있는 프로그램을 만들고 있습니다. 프로그램은 2차원 가상 벽면에 기둥과 보를 이용한 구조물을 설치할 수 있는데, 기둥과 보는 길이가 1인 선분으로 표현되며 다음과 같은 규칙을 가지고 있습니다. 기둥은 바닥 위에 있거나 보의 한쪽 끝 부분 위에 있거나, 또는 다른 기둥 위에 있어야 합니다. 보는 한쪽 끝 부분이 기둥 위에 있거나, 또는 양쪽 끝 부분이 ...

Read more