💬 문제 설명두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요. 예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다. 🚫 제한 사항a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.a와 b의 대소관계는 정해져있지 않습니다. 📢 입출력 예 📃 제출 코드class Solution { public long solution(int a, int b) { long answer = (long)(Math.abs(a - b) + 1) * (a + b) / 2; return answer; }} ✏ ..
💬 문제 설명점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다.[[x1, y1], [x2, y2], [x3, y3], [x4, y4]] 주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요. 🚫 제한 사항dots의 길이 = 4dots의 원소는 [x, y] 형태이며 x, y는 정수입니다.0 ≤ x, y ≤ 100서로 다른 두개 이상의 점이 겹치는 경우는 없습니다.두 직선이 겹치는 경우(일치하는 경우)에도 1을 return 해주세요.임의의 두 점을 이은 직선이 x축 또는 y축과 평행한 경우는 주어지지 않습니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드cl..
💬 문제 설명선분 3개가 평행하게 놓여 있습니다. 세 선분의 시작과 끝 좌표가 [[start, end], [start, end], [start, end]] 형태로 들어있는 2차원 배열 lines가 매개변수로 주어질 때, 두 개 이상의 선분이 겹치는 부분의 길이를 return 하도록 solution 함수를 완성해보세요. `lines`가 [[0, 2], [-3, -1], [-2, 1]]일 때 그림으로 나타내면 다음과 같습니다.선분이 두 개 이상 겹친 곳은 [-2, -1], [0, 1]로 길이 2만큼 겹쳐있습니다. 🚫 제한 사항lines의 길이 = 3lines의 원소의 길이 = 2모든 선분은 길이가 1 이상입니다.lines의 원소는 [a, b] 형태이며, a, b는 각각 선분의 양 끝점 입니다.-100 ≤..
💬 문제 설명다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다.지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다. 지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요. 🚫 제한 사항board는 n * n 배열입니다.1 ≤ n ≤ 100지뢰는 1로 표시되어 있습니다.board에는 지뢰가 있는 지역 1과 지뢰가 없는 지역 0만 존재합니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public int solution(int[][..
💬 문제 설명첫 번째 분수의 분자와 분모를 뜻하는 numer1, denom1, 두 번째 분수의 분자와 분모를 뜻하는 numer2, denom2가 매개변수로 주어집니다. 두 분수를 더한 값을 기약 분수로 나타냈을 때 분자와 분모를 순서대로 담은 배열을 return 하도록 solution 함수를 완성해보세요. 🚫 제한 사항0 📢 입출력 예 👨🏫 입출력 예 설명📃 제출 코드class Solution { public int[] solution(int numer1, int denom1, int numer2, int denom2) { int[] answer = new int[2]; int numer = numer1 * denom2 + numer2 * denom1; ..
💬 문제 설명연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요. 🚫 제한 사항1 ≤ num ≤ 1000 ≤ total ≤ 1000num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public int[] solution(int num, int total) { int[] answer = new int[num]; int start = 0; ..
💬 문제 설명등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요. 🚫 제한 사항2 -1,000 common의 원소는 모두 정수입니다.등차수열 혹은 등비수열이 아닌 경우는 없습니다.등비수열인 경우 공비는 0이 아닌 정수입니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public int solution(int[] common) { int answer = 0; int n = common.length; int diff = common[1] - common[0]; double ratio = (double) com..
💬 문제 설명덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요. 🚫 제한 사항연산 기호와 숫자 사이는 항상 하나의 공백이 존재합니다. 단 음수를 표시하는 마이너스 기호와 숫자 사이에는 공백이 존재하지 않습니다.1 ≤ quiz의 길이 ≤ 10X, Y, Z는 각각 0부터 9까지 숫자로 이루어진 정수를 의미하며, 각 숫자의 맨 앞에 마이너스 기호가 하나 있을 수 있고 이는 음수를 의미합니다.X, Y, Z는 0을 제외하고는 0으로 시작하지 않습니다.-10,000 ≤ X, Y ≤ 10,000-20,000 ≤ Z ≤ 20,000[연산자..
💬 문제 설명한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다. 🚫 제한 사항0 polynomial에 변수는 'x'만 존재합니다. polynomial은 양의 정수, 공백, ‘x’, ‘+'로 이루어져 있습니다. 항과 연산기호 사이에는 항상 공백이 존재합니다. 공백은 연속되지 않으며 시작이나 끝에는 공백이 없습니다. 하나의 항에서 변수가 숫자 앞에 오는 경우는 없습니다. " + 3xx + + x7 + "와 같은 잘못된 입력은 주어지..
💬 문제 설명문자열 "hello"에서 각 문자를 오른쪽으로 한 칸씩 밀고 마지막 문자는 맨 앞으로 이동시키면 "ohell"이 됩니다. 이것을 문자열을 민다고 정의한다면 문자열 A와 B가 매개변수로 주어질 때, A를 밀어서 B가 될 수 있다면 밀어야 하는 최소 횟수를 return하고 밀어서 B가 될 수 없으면 -1을 return 하도록 solution 함수를 완성해보세요. 🚫 제한 사항0 A, B는 알파벳 소문자로 이루어져 있습니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드코드1)class Solution { public int solution(String A, String B) { int answer = 0; String str = A; ..
💬 문제 설명머쓱이는 프로그래머스에 로그인하려고 합니다. 머쓱이가 입력한 아이디와 패스워드가 담긴 배열 id_pw와 회원들의 정보가 담긴 2차원 배열 db가 주어질 때, 다음과 같이 로그인 성공, 실패에 따른 메시지를 return하도록 solution 함수를 완성해주세요.아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return합니다.로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail”를, 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 합니다. 🚫 제한 사항회원들의 아이디는 문자열입니다.회원들의 아이디는 알파벳 소문자와 숫자로만 이루어져 있습니다.회원들의 패스워드는 숫자로 구성된 문자열입니다.회원들의 비밀번호는 같을 수 있지만..
💬 문제 설명2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 배열 dots가 매개변수로 주어질 때, 직사각형의 넓이를 return 하도록 solution 함수를 완성해보세요. 🚫 제한 사항dots의 길이 = 4dots의 원소의 길이 = 2-256 잘못된 입력은 주어지지 않습니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public int solution(int[][] dots) { int answer = 0; int max_X = Integer.MIN_VALUE; int min..
💬 문제 설명최빈값은 주어진 값 중에서 가장 자주 나오는 값을 의미합니다. 정수 배열 array가 매개변수로 주어질 때, 최빈값을 return 하도록 solution 함수를 완성해보세요. 최빈값이 여러 개면 -1을 return 합니다. 🚫 제한 사항0 0 ≤ array의 원소 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드import java.util.*;class Solution { public int solution(int[] array) { int answer = 0; Map map = new HashMap(); for (int i : array) { map.put(i, map.getOrDefault(i, ..
💬 문제 설명한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다. 🚫 제한 사항0 polynomial에 변수는 'x'만 존재합니다. polynomial은 양의 정수, 공백, ‘x’, ‘+'로 이루어져 있습니다. 항과 연산기호 사이에는 항상 공백이 존재합니다. 공백은 연속되지 않으며 시작이나 끝에는 공백이 없습니다. 하나의 항에서 변수가 숫자 앞에 오는 경우는 없습니다. " + 3xx + + x7 + "와 같은 잘못된 입력은 주어지..
💬 문제 설명정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. 정수가 담긴 배열 numlist와 정수 n이 주어질 때 numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return하도록 solution 함수를 완성해주세요. 🚫 제한 사항1 ≤ n ≤ 10,0001 ≤ numlist의 원소 ≤ 10,0001 ≤ numlist의 길이 ≤ 100numlist는 중복된 원소를 갖지 않습니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드import java.util.*;class Solution { public int[] solution(int[] numlist, int n) { In..
💬 문제 설명3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다. 3x 마을 사람들의 숫자는 다음과 같습니다.정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return하도록 solution 함수를 완성해주세요.🚫 제한 사항1 ≤ n ≤ 100 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public int solution(int n) { int answer = 0; for (int i = 0; i ✏ 해결방법 & 배운점반복문 :0 부터 `n` 까지 반복하며 반복문 내에서 `answer`를 증가 시킵니다.while 문을 사용하여 answer..
💬 문제 설명프로그래머스 치킨은 치킨을 시켜먹으면 한 마리당 쿠폰을 한 장 발급합니다. 쿠폰을 열 장 모으면 치킨을 한 마리 서비스로 받을 수 있고, 서비스 치킨에도 쿠폰이 발급됩니다. 시켜먹은 치킨의 수 chicken이 매개변수로 주어질 때 받을 수 있는 최대 서비스 치킨의 수를 return하도록 solution 함수를 완성해주세요. 🚫 제한 사항chicken은 정수입니다. 0 ≤ chicken ≤ 1,000,000 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public int solution(int chicken) { int answer = 0; int coupon = chicken; while ..
💬 문제 설명영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요. 🚫 제한 사항0 ≤ score[0], score[1] ≤ 1001 ≤ score의 길이 ≤ 10score의 원소 길이는 2입니다.score는 중복된 원소를 갖지 않습니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드import java.util.ArrayList;class Solution { public int[] solution(int[][] score) { int[] answer =..
💬 문제 설명소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. 유한소수가 되기 위한 분수의 조건은 다음과 같습니다. 기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다.두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요.🚫 제한 사항a, b는 정수0 0 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드import java.util.ArrayList;class Solution { public int solution(int a, int b) { int denominato..
💬 문제 설명머쓱이는 RPG게임을 하고 있습니다. 게임에는 up, down, left, right 방향키가 있으며 각 키를 누르면 위, 아래, 왼쪽, 오른쪽으로 한 칸씩 이동합니다. 예를 들어 [0,0]에서 up을 누른다면 캐릭터의 좌표는 [0, 1], down을 누른다면 [0, -1], left를 누른다면 [-1, 0], right를 누른다면 [1, 0]입니다. 머쓱이가 입력한 방향키의 배열 keyinput와 맵의 크기 board이 매개변수로 주어집니다. 캐릭터는 항상 [0,0]에서 시작할 때 키 입력이 모두 끝난 뒤에 캐릭터의 좌표 [x, y]를 return하도록 solution 함수를 완성해주세요. [0, 0]은 board의 정 중앙에 위치합니다. 예를 들어 board의 가로 크기가 9라면 캐릭터..
💬 문제 설명머쓱이는 큰 종이를 1 x 1 크기로 자르려고 합니다. 예를 들어 2 x 2 크기의 종이를 1 x 1 크기로 자르려면 최소 가위질 세 번이 필요합니다. 정수 M, N이 매개변수로 주어질 때, M x N 크기의 종이를 최소로 가위질 해야하는 횟수를 return 하도록 solution 함수를 완성해보세요. 🚫 제한 사항0 종이를 겹쳐서 자를 수 없습니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public int solution(int M, int N) { if (M * N == 1) { return 0; } int answer = N * M - 1; ..
💬 문제 설명PROGRAMMERS-962 행성에 불시착한 우주비행사 머쓱이는 외계행성의 언어를 공부하려고 합니다. 알파벳이 담긴 배열 spell과 외계어 사전 dic이 매개변수로 주어집니다. spell에 담긴 알파벳을 한번씩만 모두 사용한 단어가 dic에 존재한다면 1, 존재하지 않는다면 2를 return하도록 solution 함수를 완성해주세요.🚫 제한 사항spell과 dic의 원소는 알파벳 소문자로만 이루어져있습니다.2 ≤ spell의 크기 ≤ 10spell의 원소의 길이는 1입니다.1 ≤ dic의 크기 ≤ 101 ≤ dic의 원소의 길이 ≤ 10spell의 원소를 모두 사용해 단어를 만들어야 합니다.spell의 원소를 모두 사용해 만들 수 있는 단어는 dic에 두 개 이상 존재하지 않습니다.di..
💬 문제 설명선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.🚫 제한 사항sides의 원소는 자연수입니다.sides의 길이는 2입니다.1 ≤ sides의 원소 ≤ 1,000 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드import java.util.Arrays;class Solution { public int solution(int[] sides) { int answer = 0; Arrays.sort..
💬 문제 설명머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요. 🚫 제한 사항1 ≤ balls ≤ 301 ≤ share ≤ 30구슬을 고르는 순서는 고려하지 않습니다.share ≤ balls 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드import java.math.BigInteger;class Solution { public int solution(int balls, int share) { int a..
💬 문제 설명머쓱이는 친구들과 동그랗게 서서 공 던지기 게임을 하고 있습니다. 공은 1번부터 던지며 오른쪽으로 한 명을 건너뛰고 그다음 사람에게만 던질 수 있습니다. 친구들의 번호가 들어있는 정수 배열 numbers와 정수 K가 주어질 때, k번째로 공을 던지는 사람의 번호는 무엇인지 return 하도록 solution 함수를 완성해보세요. 🚫 제한 사항2 0 numbers의 첫 번째와 마지막 번호는 실제로 바로 옆에 있습니다.numbers는 1부터 시작하며 번호는 순서대로 올라갑니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public int solution(int[] numbers, int k) { int order = 0; ..
💬 문제 설명영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요. 🚫 제한 사항numbers는 소문자로만 구성되어 있습니다.numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.1 ≤ numbers의 길이 ≤ 50"zero"는 numbers의 맨 앞에 올 수 없습니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public long solution(String num..
💬 문제 설명my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요. 🚫 제한 사항연산자는 +, -만 존재합니다.문자열의 시작과 끝에는 공백이 없습니다.0으로 시작하는 숫자는 주어지지 않습니다.잘못된 수식은 주어지지 않습니다.5 ≤ my_string의 길이 ≤ 100my_string을 계산한 결과값은 1 이상 100,000 이하입니다.my_string의 중간 계산 값은 -100,000 이상 100,000 이하입니다.계산에 사용하는 숫자는 1 이상 20,000 이하인 자연수입니다.my_string에는 연산자가 적어도 하나 포함되어 있습니다.return type 은 정수형입니..
💬 문제 설명문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요. 🚫 제한 사항1 ≤ my_str의 길이 ≤ 1001 ≤ n ≤ my_str의 길이my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public String[] solution(String my_str, int n) { String[] answer = new String[my_str.length() % n == 0 ? my_str.length() / n :..
💬 문제 설명이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요. 🚫 제한 사항return 값은 이진수를 의미하는 문자열입니다.1 ≤ bin1, bin2의 길이 ≤ 10bin1과 bin2는 0과 1로만 이루어져 있습니다.bin1과 bin2는 "0"을 제외하고 0으로 시작하지 않습니다. 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드class Solution { public String solution(String bin1, String bin2) { String answer = Integer.toBinaryString(Integer.parseInt(bin1, 2) + Inte..
💬 문제 설명소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. 🚫 제한 사항2 ≤ n ≤ 10,000 📢 입출력 예 👨🏫 입출력 예 설명 📃 제출 코드import java.util.List;import java.util.ArrayList;class Solution { public int[] solution(int n) { int[] answer = {}; List list = new ArrayList(); ..