프로그래머스
![[62048번] 멀쩡한 사각형](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FkPzIu%2FbtrKdRxNuXA%2FAAAAAAAAAAAAAAAAAAAAAEsVGCG4od1iPu0XTKY5iEnA7ubYWAcqMX0NzabWZm-v%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DjqEAPi%252B5vvYmMxohUG1mMg9f1xc%253D)
[62048번] 멀쩡한 사각형
✔️ 문제 설명 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 따라 1cm × 1cm의 정사각형으로 잘라 사용할 예정이었는데, 누군가가 이 종이를 대각선 꼭지점 2개를 잇는 방향으로 잘라 놓았습니다. 그러므로 현재 직사각형 종이는 크기가 같은 직각삼각형 2개로 나누어진 상태입니다. 새로운 종이를 구할 수 없는 상태이기 때문에, 이 종이에서 원래 종이의 가로, 세로 방향과 평행하게 1cm × 1cm로 잘라 사용할 수 있는 만큼만 사용하기로 하였습니다. 가로의 길이 W와 세로의 길이 H가 주어질 때, 사용할 수 있는 정사각형의 개수를 구하는 solu..
![[118666번] 성격 유형 검사하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FL913I%2FbtrKhRKzh2C%2FAAAAAAAAAAAAAAAAAAAAAPhp5IAzrwkCiihnSa8vFOTv9yZX8WhUCNXcLBK2OTWw%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DIgndHxy%252BCnUSUvSIncU%252F5lTnP%252BQ%253D)
[118666번] 성격 유형 검사하기
✔️ 문제 설명 나만의 카카오 성격 유형 검사지를 만들려고 합니다. 성격 유형 검사는 다음과 같은 4개 지표로 성격 유형을 구분합니다. 성격은 각 지표에서 두 유형 중 하나로 결정됩니다. 4개의 지표가 있으므로 성격 유형은 총 16(=2 x 2 x 2 x 2)가지가 나올 수 있습니다. 예를 들어, "RFMN"이나 "TCMA"와 같은 성격 유형이 있습니다. 검사지에는 총 n개의 질문이 있고, 각 질문에는 아래와 같은 7개의 선택지가 있습니다. 매우 비동의 비동의 약간 비동의 모르겠음 약간 동의 동의 매우 동의 각 질문은 1가지 지표로 성격 유형 점수를 판단합니다. 예를 들어, 어떤 한 질문에서 4번 지표로 아래 표처럼 점수를 매길 수 있습니다. 이때 검사자가 질문에서 약간 동의 선택지를 선택할 경우 어피치..
![[118667번] 두 큐 합 같게 만들기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FrhSbZ%2FbtrJ2llNaKL%2FAAAAAAAAAAAAAAAAAAAAAPDrBawCcA6vbsDCcxH79bn2EqCvfUPlZewvQmj19GUm%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3D7py9m4oIjEdubseRcBgQS%252Bj%252FcoE%253D)
[118667번] 두 큐 합 같게 만들기
✔️ 문제 설명 길이가 같은 두 개의 큐가 주어집니다. 하나의 큐를 골라 원소를 추출(pop)하고, 추출된 원소를 다른 큐에 집어넣는(insert) 작업을 통해 각 큐의 원소 합이 같도록 만들려고 합니다. 이때 필요한 작업의 최소 횟수를 구하고자 합니다. 한 번의 pop과 한 번의 insert를 합쳐서 작업을 1회 수행한 것으로 간주합니다. 큐는 먼저 집어넣은 원소가 먼저 나오는 구조입니다. 이 문제에서는 큐를 배열로 표현하며, 원소가 배열 앞쪽에 있을수록 먼저 집어넣은 원소임을 의미합니다. 즉, pop을 하면 배열의 첫 번째 원소가 추출되며, insert를 하면 배열의 끝에 원소가 추가됩니다. 예를 들어 큐 [1, 2, 3, 4]가 주어졌을 때, pop을 하면 맨 앞에 있는 원소 1이 추출되어 [2, ..
![[12913번] 땅따먹기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FFfB00%2FbtrJO1gNAII%2FAAAAAAAAAAAAAAAAAAAAAIwYWvBPscFrYqbCiFhLAI_U8sp3TAf2hllkz5W1ze1n%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dj3S1yEMEuiurky%252B%252B8TeVe7DycS4%253D)
[12913번] 땅따먹기
✔️ 문제 설명 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟으면서 내려와야 합니다. 단, 땅따먹기 게임에는 한 행씩 내려올 때, 같은 열을 연속해서 밟을 수 없는 특수 규칙이 있습니다. 예를 들면, | 1 | 2 | 3 | 5 | | 5 | 6 | 7 | 8 | | 4 | 3 | 2 | 1 | 로 땅이 주어졌다면, 1행에서 네번째 칸 (5)를 밟았으면, 2행의 네번째 칸 (8)은 밟을 수 없습니다. 마지막 행까지 모두 내려왔을 때, 얻을 수 있는 점수의 최대값을 return하는 solution 함수를 완성해 주세요. 위 예의 경우, 1행의 네번째..
![[12949번] 행렬의 곱셈](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FCtZ5l%2FbtrJlG6oadL%2FAAAAAAAAAAAAAAAAAAAAAKGYAP6Iwe2QbbogznC1f4a5zPYn2tCjVF6IfMgV74CT%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DuQVOviMUaolJ0mceKWEdlGgazr8%253D)
[12949번] 행렬의 곱셈
✔️ 문제 설명 2차원 행렬 arr1과 arr2를 입력받아, arr1에 arr2를 곱한 결과를 반환하는 함수, solution을 완성해주세요. ✔️ 제한 사항 행렬 arr1, arr2의 행과 열의 길이는 2 이상 100 이하입니다. 행렬 arr1, arr2의 원소는 -10 이상 20 이하인 자연수입니다. 곱할 수 있는 배열만 주어집니다. ✔️ 입출력 예 ✔️ 코드 구상 완전한 수학 문제다!!!! 이 문제를 풀기 위해 행렬의 곱셈을 찾아봐야했다. 예제 1번을 보면 A x B 와 C x D를 곱할 때 A x D 의 결과물이 나오고 B와 C는 항상 같아야 한다는 것을 알 수 있다. 배열의 크기를 A x D로 정의해주고 각 자리마다 값을 계산해서 채워 넣어야 하기 때문에 3중 for문을 사용한다. ✔️ 코드 c..
![[42839번] 소수 찾기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb0jzMT%2FbtrJikAPSHO%2FAAAAAAAAAAAAAAAAAAAAABwmb8MdX5WBniVFMuK-5LUwoSOGnpp6-99l8tXwgbFu%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DtKu%252B9U4KulKINv9FtmzfntdlP3w%253D)
[42839번] 소수 찾기
✔️ 문제 설명 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요. ✔️ 제한 사항 numbers는 길이 1 이상 7 이하인 문자열입니다. numbers는 0~9까지 숫자만으로 이루어져 있습니다. "013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다. ✔️ 입출력 예 예제 #1 [1, 7]으로는 소수 [7, 17, 71]를 만들 수 있습니다. 예제 #2 [0, 1, 1]으로는 소수 [11, 101]를 만들 수 있습니다. 11과 011은 같은 ..
![[1844번] 게임 맵 최단거리](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcDeG1w%2FbtrJgetbGoL%2FAAAAAAAAAAAAAAAAAAAAAIepBUVsCdssHk_YYWrlQt3k2MyRQjJO8BBvEWP_VhsH%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Du%252FO6Dt%252FxHO3ivXruFGP5EA8BLBg%253D)
[1844번] 게임 맵 최단거리
✔️ 문제 설명 ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다. 위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가 움직일 때는 동, 서, 남, 북 방향으로 한 칸씩 이동하며, 게임 맵을 벗어난 길은 갈 수 없습니다. 아래 예시는 캐릭터가 상대 팀 진영으로 가는 두 가지 방법을 나타내고 있습니다. 첫 번째 방법은..
![[17686번] 파일명 정렬](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcjpB4o%2FbtrIWuedEKC%2FAAAAAAAAAAAAAAAAAAAAAFqJrmmUTu-1EDohyj3OloO7PEkImMehEtlYtBbMlgpu%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DNcitRnWhPoSL1HJ21btNjouVyFA%253D)
[17686번] 파일명 정렬
✔️ 문제 설명 파일명 정렬 세 차례의 코딩 테스트와 두 차례의 면접이라는 기나긴 블라인드 공채를 무사히 통과해 카카오에 입사한 무지는 파일 저장소 서버 관리를 맡게 되었다. 저장소 서버에는 프로그램의 과거 버전을 모두 담고 있어, 이름 순으로 정렬된 파일 목록은 보기가 불편했다. 파일을 이름 순으로 정렬하면 나중에 만들어진 ver-10.zip이 ver-9.zip보다 먼저 표시되기 때문이다. 버전 번호 외에도 숫자가 포함된 파일 목록은 여러 면에서 관리하기 불편했다. 예컨대 파일 목록이 ["img12.png", "img10.png", "img2.png", "img1.png"]일 경우, 일반적인 정렬은 ["img1.png", "img10.png", "img12.png", "img2.png"] 순이 되지만,..
![[12939번] 최댓값과 최솟값](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FtjQ2V%2FbtrIJ7wtJ5r%2FAAAAAAAAAAAAAAAAAAAAACIsNrinzQELSJA3l9F4mgRmCrMTcXDUgNrFY0XUq3y7%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DsjFsC%252Bbnv2vK6ZEAgfFCbvmehuk%253D)
[12939번] 최댓값과 최솟값
✔️ 문제 설명 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다. ✔️ 제한 조건 s에는 둘 이상의 정수가 공백으로 구분되어 있습니다. ✔️ 입출력 예 ✔️ 코드 구상 문제에서 친절하게 다 설명해주고 있다. 공백으로 구분된 숫자들이 있으므로 split으로 분할한 후 min, max를 이용해 최댓값과 최솟값을 구해주면 된다. ✔️ 코드 import java.util.*; class Solution { public String solutio..
![[12924번] 숫자의 표현](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcHNQOw%2FbtrINurCNkk%2FAAAAAAAAAAAAAAAAAAAAAKKkhHrmLArNoqmlwVz1msSduWubd0dBg1vhXoK1x3jX%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DJ2dRci9CJLQ%252FFU243XEQi2BJti4%253D)
[12924번] 숫자의 표현
✔️ 문제 설명 Finn은 요즘 수학공부에 빠져 있습니다. 수학 공부를 하던 Finn은 자연수 n을 연속한 자연수들로 표현 하는 방법이 여러개라는 사실을 알게 되었습니다. 예를들어 15는 다음과 같이 4가지로 표현 할 수 있습니다. 1 + 2 + 3 + 4 + 5 = 15 4 + 5 + 6 = 15 7 + 8 = 15 15 = 15 자연수 n이 매개변수로 주어질 때, 연속된 자연수들로 n을 표현하는 방법의 수를 return하는 solution를 완성해주세요. ✔️ 제한 사항 n은 10,000 이하의 자연수 입니다. ✔️ 입출력 예 입출력 예#1 문제의 예시와 같습니다. ✔️ 코드 구상 2중 반복문으로 쉽게 구현 할 수 있는 문제이다... 큰 설명이 필요하지 않은 것 같다. ✔️ 코드 class Solut..
![[12914번] 멀리 뛰기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FqpgFv%2FbtrII13yFAZ%2FAAAAAAAAAAAAAAAAAAAAACLRcQUGO4tMRPL7AhPP4fV_Xb3T2Bio_zZjdsyHgDls%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dsomqf88TKYhZ%252FCz4K3vxwobBLfI%253D)
[12914번] 멀리 뛰기
✔️ 문제 설명 효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는 (1칸, 1칸, 1칸, 1칸) (1칸, 2칸, 1칸) (1칸, 1칸, 2칸) (2칸, 1칸, 1칸) (2칸, 2칸) 의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다. ✔️ 제한 사항 n은 1 이상, 2000 이하인 정수입니다. ✔️ 입출력 예 입출력 예 #1 위에서 설명한 내용과 같습니다. 입출력 예 #2 (2칸, 1칸) ..
![[12911번] 다음 큰 숫자](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fd2Fqvt%2FbtrIyxWb8es%2FAAAAAAAAAAAAAAAAAAAAAM6V4PfTR-uzPnV4qCyZX7bMVlcgwl_iU81R0DiODSaT%2Fimg.jpg%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DPJlzCkI%252Bl%252FisnE6YY%252FvlBVkpbB8%253D)
[12911번] 다음 큰 숫자
✔️ 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. ✔️ 제한 사항 n은 1,000,000 이하의 자연수 입니다. ✔️ 입출력 예 입출력 예#1 문제 예시와 같습니다. 입출력 예#2 15(1111)의 다음 큰 숫자는 23(10111)입니다. ✔️ 코드..