본문 바로가기

level 213

[level 2] 금고털이 (JAVA) 문제 요약 루팡은 배낭을 하나 메고 은행금고에 들어왔다. 금고 안에는 값비싼 금, 은, 백금 등의 귀금속 덩어리가 잔뜩 들어있다. 배낭은 W ㎏까지 담을 수 있다. 각 금속의 무게와 무게당 가격이 주어졌을 때 배낭을 채울 수 있는 가장 값비싼 가격은 얼마인가? 루팡은 전동톱을 가지고 있으며 귀금속은 톱으로 자르면 잘린 부분의 무게만큼 가치를 가진다. 문제 분석 보석을 가격이 높은 순서대로 정렬 배낭에 담을 수 있는 최대 무게인 bagWeight를 가지고, 배낭에 담을 수 있는 최대 가치를 계산 코드 import java.util.*; import java.io.*; public class Main { static class Jewelry implements Comparable { int weight; i.. 2023. 5. 10.
[level 2] 소수 찾기 - 42839 (JAVA) 문제 요약 한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해 주세요. 문제 분석 가능한 경우를 모두 구해 Set에 넣어 중복을 제거하며 정말탐색한다. 코드 import java.util.*; import java.util.stream.Collectors; class Solution { public int solution(String numbers) { int answer = 0; // 문자열 numbers를 int 배열로 변환 int[] numArr = numbers... 2023. 5. 10.
[level 2] H-Index - 42747 (JAVA) 문제 요약 H-Index는 과학자의 생산성과 영향력을 나타내는 지표입니다. 어느 과학자의 H-Index를 나타내는 값인 h를 구하려고 합니다. 위키백과 1에 따르면, H-Index는 다음과 같이 구합니다. 어떤 과학자가 발표한 논문 n편 중, h번 이상 인용된 논문이 h 편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index입니다. 어떤 과학자가 발표한 논문의 인용 횟수를 담은 배열 citations가 매개변수로 주어질 때, 이 과학자의 H-Index를 return 하도록 solution 함수를 작성해 주세요. 문제 분석 순차정렬 후 계산해야 한다. 코드 import java.util.*; class Solution { public int solution(int[] c.. 2023. 5. 10.
[level 2] 가장 큰 수 - 42746 (JAVA) 문제 요약 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해 주세요. 문제 분석 정렬 조건을 두 수를 합쳤을 때 큰 수가 되는 것을 기준으로 한다. 모든 수가 0인 경우를 체크한다. 코드 import java.util.*; class Solution { public String solution(int[] nu.. 2023. 5. 10.
[level 2] [카카오 인턴] 수식 최대화 - 67257 (JAVA) 문제 요약 문제는 주어진 수식 문자열에서 연산자의 우선순위를 바꾸어 가능한 모든 조합을 만들고, 그 중에서 각 경우의 절대값이 가장 큰 결과를 반환하는 것이다. 문제 분석 주어진 수식 문자열을 토큰화하여 연산자와 피연산자를 구분한다. 가능한 모든 연산자 우선순위 조합을 구한다. 각 조합에 대해 주어진 수식을 계산하고, 절대값이 가장 큰 결과를 구한다 코드 import java.util.*; class Solution { static long max; static String[] std = {"+", "-", "*"}; public long solution(String expression) { max = 0; // 특정 구분자를 기반으로 문자열 나누기 StringTokenizer st = new Strin.. 2023. 5. 6.
[level 2] 카펫 - 42842 (java) 문제 요약 Leo가 카펫을 사러 갔다가, 중앙에 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양의 카펫을 봤습니다. Leo는 노란색과 갈색 격자의 개수를 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. 갈색 격자의 수 brown과 노란색 격자의 수 yellow가 주어졌을 때, 카펫의 가로, 세로 크기를 순서대로 배열에 담아 반환하는 solution 함수를 작성해 주세요. 문제 분석 노란색 격자로 만들 수 있는 모든 가능한 사각형 조합을 찾고, 갈색 격자를 추가하며 전체 카펫의 크기를 찾아야 한다. 그리고 카펫의 가로길이는 세로 길이와 같거나, 세로 길이보다 길어야 한다. 코드 import java.util.*; /* 노란색으로 만들 수 있는 사각형의 형태를 모두 찾은 뒤 그 둘.. 2023. 5. 4.