본문 바로가기

분류 전체보기

(470)
[프로그래머스(Java)] 과일 장수 / Arrays.sort() Level. 1 문제 과일 장수가 사과 상자를 포장하고 있습니다. 사과는 상태에 따라 1점부터 k점까지의 점수로 분류하며, k점이 최상품의 사과이고 1점이 최하품의 사과입니다. 사과 한 상자의 가격은 다음과 같이 결정됩니다. - 한 상자에 사과를 m개씩 담아 포장합니다. - 상자에 담긴 사과 중 가장 낮은 점수가 p (1 ≤ p ≤ k)점인 경우, 사과 한 상자의 가격은 p * m 입니다. 과일 장수가 가능한 많은 사과를 팔았을 때, 얻을 수 있는 최대 이익을 계산하고자 합니다. (사과는 상자 단위로만 판매하며, 남는 사과는 버립니다) 예를 들어, k = 3, m = 4, 사과 7개의 점수가 [1, 2, 3, 1, 2, 3, 1]이라면, 다음과 같이 [2, 3, 2, 3]으로 구성된 사과 상자 1개를 만..
[프로그래머스(Java)] 소인수분해 / Set Level. 0 문제 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 * 2 * 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요. * 제한사항 - 2 ≤ n ≤ 10,000 풀이 import java.util.*; class Solution { public int[] solution(int n) { int[] answer ; Set set = new HashSet(); int num=2; while(n>1){ if(n%num == 0){ n/=num; set.add(num); } else { num += 1; ..
[프로그래머스(Java)] 기사단원의 무기 Level. 1 문제 숫자나라 기사단의 각 기사에게는 1번부터 number까지 번호가 지정되어 있습니다. 기사들은 무기점에서 무기를 구매하려고 합니다. 각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사단원은 15의 약수가 1, 3, 5, 15로 4개 이므로, 공격력이 4인 무기를 구매합니다. 만약, 이웃나라와의 협약으로 정해진 공격력의 제한수치가 3이고 제한수치를 초과한 기사가 사용할 무기의 공격력이 2라면, 15번으로 지정된 기사단원은 무기점에서 공격력..
[프로그래머스(Java)] 두 개 뽑아서 더하기 / Set , Arrays.sort() Level. 1 문제 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. * 제한사항 - numbers의 길이는 2 이상 100 이하입니다. - numbers의 모든 수는 0 이상 100 이하입니다. 풀이 import java.util.*; class Solution { public int[] solution(int[] numbers) { Set set = new HashSet(); for(int i=0; i
[프로그래머스(Java)] 리스트 자르기 / Arrays.copyOfRange Level. 0 문제 정수 n과 정수 3개가 담긴 리스트 slicer 그리고 정수 여러 개가 담긴 리스트 num_list가 주어집니다. slicer에 담긴 정수를 차례대로 a, b, c라고 할 때, n에 따라 다음과 같이 num_list를 슬라이싱 하려고 합니다. n = 1 : num_list의 0번 인덱스부터 b번 인덱스까지 n = 2 : num_list의 a번 인덱스부터 마지막 인덱스까지 n = 3 : num_list의 a번 인덱스부터 b번 인덱스까지 n = 4 : num_list의 a번 인덱스부터 b번 인덱스까지 c 간격으로 올바르게 슬라이싱 한 리스트를 return 하도록 solution 함수를 완성해 주세요. 풀이 1 import java.util.Arrays; class Solution { p..
[프로그래머스] 이진수 더하기 Level. 0 문제 이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요. * 제한사항 - return 값은 이진수를 의미하는 문자열입니다. - 1 ≤ bin1, bin2의 길이 ≤ 10 - bin1과 bin2는 0과 1로만 이루어져 있습니다. - bin1과 bin2는 "0"을 제외하고 0으로 시작하지 않습니다. 풀이 #include #include using namespace std; string solution(string bin1, string bin2) { string answer = ""; int num = stoi(bin1, nullptr, 2) + stoi(bin2, nullptr, 2); if..
[프로그래머스(Java)] 이진수 더하기 / parseInt, toString, toBinaryString Level. 0 문제 이진수를 의미하는 두 개의 문자열 bin1과 bin2가 매개변수로 주어질 때, 두 이진수의 합을 return하도록 solution 함수를 완성해주세요. * 제한사항 - return 값은 이진수를 의미하는 문자열입니다. - 1 ≤ bin1, bin2의 길이 ≤ 10 - bin1과 bin2는 0과 1로만 이루어져 있습니다. - bin1과 bin2는 "0"을 제외하고 0으로 시작하지 않습니다. 풀이 class Solution { public String solution(String bin1, String bin2) { String answer = ""; int num = Integer.parseInt(bin1, 2) + Integer.parseInt(bin2, 2); answer = In..
[프로그래머스(Java)] 컨트롤 제트 / Stack String.split() Level. 0 문제 숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. 문자열에 있는 숫자를 차례대로 더하려고 합니다. 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return 하도록 solution 함수를 완성해보세요. * 제한사항 - 1 ≤ s의 길이 ≤ 200 - -1,000 < s의 원소 중 숫자 < 1,000 - s는 숫자, "Z", 공백으로 이루어져 있습니다. - s에 있는 숫자와 "Z"는 서로 공백으로 구분됩니다. - 연속된 공백은 주어지지 않습니다. - 0을 제외하고는 0으로 시작하는 숫자는 없습니다. - s는 "Z"로 시작하지 않습니다. - s의 시작과 끝에는 공백이 없습니다. - "Z"..