https://www.acmicpc.net/problem/1107 1107번: 리모컨 첫째 줄에 수빈이가 이동하려고 하는 채널 N (0 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 고장난 버튼의 개수 M (0 ≤ M ≤ 10)이 주어진다. 고장난 버튼이 있는 경우에는 셋째 줄에는 고장난 버튼 www.acmicpc.net 해설 : 수빈이는 리모컨을 조작하여 원하는 채널로 이동하고 싶다. 그러나 리모컨의 버튼이 몇 개 고장나서 직접적으로 이동할 수 없는 상황이다. 고장나지 않은 버튼과 +, -버튼만을 이용하여 원하는 채널로 바꿀 때 버튼을 누르는 최소 횟수를 찾는 문제이다. 수빈이의 현재 채널은 100번이다. 풀이 : 우선 고장난 버튼을 제외하고 가능한 버튼에 대한 정보를 담아두고 이 정보를 이용해서..
https://www.acmicpc.net/problem/1038 1038번: 감소하는 수 음이 아닌 정수 X의 자릿수가 가장 큰 자릿수부터 작은 자릿수까지 감소한다면, 그 수를 감소하는 수라고 한다. 예를 들어, 321과 950은 감소하는 수지만, 322와 958은 아니다. N번째 감소하는 수를 www.acmicpc.net 해설 : 음이 아닌 정수 X가 가장 큰 자릿수부터 가장 작은 자릿수까지 감소한다면 (숫자가 작아진다면) 이는 감소하는 수 이다. N이 주어질 때 0부터 시작하는 감소하는 수들 중 N번째 수를 출력하는 문제이다 (숫자는 1,000,000) 이하이다. 풀이 : 완전 탐색 문제이다. N번째 수인지 확인하는 cnt 변수를 두고, 이 cnt 변수가 N보다 작은동안 1부터 1,000,000까지..
https://programmers.co.kr/learn/courses/30/lessons/12929 코딩테스트 연습 - 올바른 괄호의 갯수 올바른 괄호란 (())나 ()와 같이 올바르게 모두 닫힌 괄호를 의미합니다. )(나 ())() 와 같은 괄호는 올바르지 않은 괄호가 됩니다. 괄호 쌍의 개수 n이 주어질 때, n개의 괄호 쌍으로 만들 수 있는 모 programmers.co.kr 해설 : 소괄호의 짝이 n개 주어질 때, 이 소괄호의 짝을 이용해서 만들 수 있는 모든 올바른 괄호열의 개수를 찾는 문제이다. 풀이 : 우선 괄호가 올바른 괄호열인지 체크하는 함수를 구현하고, 재귀를 이용해서 n개의 짝으로 만들 수 있는 모든 괄호 문자열에 대해 올바른 괄호열인지 체크하도록 했다. 123456789101112..
https://programmers.co.kr/learn/courses/30/lessons/42842 코딩테스트 연습 - 카펫 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 programmers.co.kr 해설 : 카펫이 다음과 같이 테두리는 갈색, 속 알멩이는 노란색으로 칠해져 있다. 갈색 칸의 개수와, 노란색 칸의 개수만을 알고 있을 때 원래 카펫의 가로와 세로 길이를 찾으면 된다. 풀이 : 문제의 분류가 완전탐색로 구분되어있어 크게 봤을 땐 완전탐색이 맞다. 하지만 수학적인 부분들을 생각하는 것에 시간이 더 걸렸던 것 같다. 먼저 갈색, 노란색 블록의 개..
https://programmers.co.kr/learn/courses/30/lessons/42839 코딩테스트 연습 - 소수 찾기 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 programmers.co.kr 해설 : 숫자로 이루어진 문자열이 주어질 때, 각 자릿수들을 조합해서 만들 수 있는 모든 수들 중 소수만 찾아서 개수를 출력하면 된다. 풀이 : numbers에 담겨있는 숫자의 각 자릿수들을 1부터 numbers의 길이만큼 개수만큼 조합한 모든 수들에 대해 isPrime함수를 통해 소수인지 판별한다. 소수일 경우 answer에 1을 추가해주었고 s..
https://programmers.co.kr/learn/courses/30/lessons/42840 코딩테스트 연습 - 모의고사 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 programmers.co.kr 해설 : 수열로 이루어진 패턴 3개가 주어질 때, 각 패턴으로 시험의 문제를 찍었을 경우 어떤 패턴의 사람이 점수가 가장 높은지 맞추는 문제이다. 풀이 : 문제의 정답들이 담긴 배열을 미리 최대 1만개까지 구현해놓은 후 이를 주어진 문제의 수만큼 비교하여 실제 맞춘 문제의 개수를 카운팅하고 최고점수를 받을 수 있는 패턴을 모두 출력한다. 1234567891011..