본문 바로가기

Algorithm

(402)
[프로그래머스] 귤 고르기 / max_element, 내림차순 정렬 Level. 2 문제 경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다. 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3]이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다. 경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine이 매개변수로 주어집니다. 경화가 귤 k개를 고를 ..
[프로그래머스] 이진 변환 반복하기 Level. 2 문제 0과 1로 이루어진 어떤 문자열 x에 대한 이진 변환을 다음과 같이 정의합니다. - x의 모든 0을 제거합니다. - x의 길이를 c라고 하면, x를 "c를 2진법으로 표현한 문자열"로 바꿉니다. 예를 들어, x = "0111010"이라면, x에 이진 변환을 가하면 x = "0111010" -> "1111" -> "100" 이 됩니다. 0과 1로 이루어진 문자열 s가 매개변수로 주어집니다. s가 "1"이 될 때까지 계속해서 s에 이진 변환을 가했을 때, 이진 변환의 횟수와 변환 과정에서 제거된 모든 0의 개수를 각각 배열에 담아 return 하도록 solution 함수를 완성해주세요. * 제한사항 - s의 길이는 1 이상 150,000 이하입니다. - s에는 '1'이 최소 하나 이상 ..
[프로그래머스(Java)] 문자열 계산하기 / split Level. 0 문제 my_string은 "3 + 5"처럼 문자열로 된 수식입니다. 문자열 my_string이 매개변수로 주어질 때, 수식을 계산한 값을 return 하는 solution 함수를 완성해주세요. * 제한사항 - 연산자는 +, -만 존재합니다. - 문자열의 시작과 끝에는 공백이 없습니다. - 0으로 시작하는 숫자는 주어지지 않습니다.잘못된 수식은 주어지지 않습니다. - 5 ≤ my_string의 길이 ≤ 100 - my_string을 계산한 결과값은 1 이상 100,000 이하입니다. my_string의 중간 계산 값은 -100,000 이상 100,000 이하입니다. 계산에 사용하는 숫자는 1 이상 20,000 이하인 자연수입니다. my_string에는 연산자가 적어도 하나 포함되어 있습니다..
[프로그래머스(Java)] 영어가 싫어요 / map, replaceAll Level. 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 numbers) { String[] n..
[프로그래머스(Java)] 문자 개수 세기 / groupingBy Level. 0 문제 알파벳 대소문자로만 이루어진 문자열 my_string이 주어질 때, my_string에서 'A'의 개수, my_string에서 'B'의 개수,..., my_string에서 'Z'의 개수, my_string에서 'a'의 개수, my_string에서 'b'의 개수,..., my_string에서 'z'의 개수를 순서대로 담은 길이 52의 정수 배열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - 1 ≤ my_string의 길이 ≤ 1,000 풀이 class Solution { public int[] solution(String my_string) { int[] answer = new int[52]; for(int i=0; i> gourpingBy의 두 번째 인자..
[프로그래머스(Java)] 잘라서 배열로 저장하기 Level. 0 문제 문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요. * 제한사항 - 1 ≤ my_str의 길이 ≤ 100 - 1 ≤ n ≤ my_str의 길이 - my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다. 풀이 class Solution { public String[] solution(String my_str, int n) { String[] answer = {}; answer = my_str.length()%n==0?new String[my_str.length()/n] : new String[my_str.length()/n+1]; int index = 0; for(int i=..
[프로그래머스(Java)] qr code / Stream Level. 0 문제 두 정수 q, r과 문자열 code가 주어질 때, code의 각 인덱스를 q로 나누었을 때 나머지가 r인 위치의 문자를 앞에서부터 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요. * 제한사항 - 0 ≤ r String.valueOf(code.charAt(i))).collect..
[프로그래머스(Java)] 커피 심부름 Level. 0 문제 팀의 막내인 철수는 아메리카노와 카페 라테만 판매하는 카페에서 팀원들의 커피를 사려고 합니다. 아메리카노와 카페 라테의 가격은 차가운 것과 뜨거운 것 상관없이 각각 4500, 5000원입니다. 각 팀원에게 마실 메뉴를 적어달라고 하였고, 그 중에서 메뉴만 적은 팀원의 것은 차가운 것으로 통일하고 "아무거나"를 적은 팀원의 것은 차가운 아메리카노로 통일하기로 하였습니다. 각 직원이 적은 메뉴가 문자열 배열 order로 주어질 때, 카페에서 결제하게 될 금액을 return 하는 solution 함수를 작성해주세요. order의 원소는 아래의 것들만 들어오고, 각각의 의미는 다음과 같습니다. order의 원소 의미 "iceamericano", "americanoice" 차가운 아메리카노 ..