본문 바로가기

전체 글38

[프로그래머스] 등굣길 Java programmers.co.kr/learn/courses/30/lessons/42898 코딩테스트 연습 - 등굣길 계속되는 폭우로 일부 지역이 물에 잠겼습니다. 물에 잠기지 않은 지역을 통해 학교를 가려고 합니다. 집에서 학교까지 가는 길은 m x n 크기의 격자모양으로 나타낼 수 있습니다. 아래 그림은 m = programmers.co.kr 문제 요약 집(1,1)에서 출발하여 학교(m,n)까지 이동하려 한다. 이동은 오른쪽과 아래로만 제한된다. 물웅덩이 배열이 주어지며 물웅덩이가 있는 위치는 밟을 수가 없다. 학교에 도착하는 경로의 수를 반환하는 함수를 만들어야 한다. 문제 풀이 전형적인 DP 문제이다. 난이도는 어렵지 않고 문제의 핵심은 물웅덩이를 안밟게 하는 부분인 것 같다. 내가 푼 방식은 우선 .. 2020. 10. 28.
[프로그래머스] 입국심사 Java programmers.co.kr/learn/courses/30/lessons/43238 코딩테스트 연습 - 입국심사 n명이 입국심사를 위해 줄을 서서 기다리고 있습니다. 각 입국심사대에 있는 심사관마다 심사하는데 걸리는 시간은 다릅니다. 처음에 모든 심사대는 비어있습니다. 한 심사대에서는 동시에 한 programmers.co.kr 문제 요약 n명의 사람들이 입국심사를 기다리고 있다. 각 입국심사관의 입국심사 시간은 times 배열에 주어진다. 모든 사람이 심사받는 최소 시간을 반환해야 한다. 문제 풀이 이 문제의 핵심은 시간(mid)이 주어지면 그 시간 동안 몇명까지 통과시킬 수 있는지 확인할 수 있다는 것이다. 이를 통해 mid를 앞 뒤로 움직이며 이분 탐색으로 문제를 풀어낼 수 있다. 우선 left를.. 2020. 10. 27.
[프로그래머스] 야근 지수 Java programmers.co.kr/learn/courses/30/lessons/12927 코딩테스트 연습 - 야근 지수 회사원 Demi는 가끔은 야근을 하는데요, 야근을 하면 야근 피로도가 쌓입니다. 야근 피로도는 야근을 시작한 시점에서 남은 일의 작업량을 제곱하여 더한 값입니다. Demi는 N시간 동안 야근 피로도 programmers.co.kr 문제 요약 야근을 시작하는데 남은 일의 양은 works배열 만큼 있고, 퇴근까지 시간은 n 만큼 남아있다. 한 시간에 1의 작업량만을 해결할 수 있으며, 야근이 끝난 후의 피로도는 남은 작업들의 제곱의 합이다. 퇴근 시간이 되었을 때 남을 수 있는 가장 적은 피로도를 반환하는 함수를 만들어야 한다. 문제 풀이 당연히 피로도를 줄이기 위해서는 가장 남은양이 많은 .. 2020. 10. 26.
[프로그래머스] 멀쩡한 사각형 Java programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 문제 요약 한 칸이 1 x 1로 구성된 w x h 칸의 종이가 있다. 이 종이를 대각선 꼭짓점 2개를 잇는 방향으로 잘랐을 때 손상되지 않은 1x1 크기의 칸의 개수를 구하시오. 문제 풀이 우선 w와 h의 값이 최대 1억이기 때문에 최대공약수로 나누어서 해결한 다음에 최대공약수(GCD)를 곱해주는 방식을 사용해야 편하다. 최대공약수를 구하는 함수를 .. 2020. 10. 25.