본문 바로가기

알고리즘 풀이67

[level 2] 8단 변속기(JAVA) 문제 요약 현대자동차에서는 부드럽고 빠른 변속이 가능한 8단 습식 DCT 변속기를 개발하여 N라인 고성능차에 적용하였다. 관련하여 SW 엔지니어인 당신에게 연속적으로 변속이 가능한지 점검할 수 있는 프로그램을 만들라는 임무가 내려왔다. 당신은 변속기가 1단에서 8단으로 연속적으로 변속을 한다면 ascending, 8단에서 1단으로 연속적으로 변속한다면 descending, 둘 다 아니라면 mixed라고 정의했다. 변속한 순서가 주어졌을 때 이것이 ascending인지, descending인지, 아니면 mixed인지 출력하는 프로그램을 작성하시오. 문제 분석 오름차순과 내림차순의 기준을 구한 후 순차적으로 확인한다. 코드 import java.util.*; import java.io.*; public cl.. 2023. 5. 10.
[level 2] 바이러스 (JAVA) 문제 요약 바이러스가 숙주의 몸속에서 1초당 P배씩 증가한다. 처음에 바이러스 K마리가 있었다면 N초 후에는 총 몇 마리의 바이러스로 불어날까? N초 동안 죽는 바이러스는 없다고 가정한다. 문제 분석 점화식 코드 import java.util.*; import java.io.*; public class Main { public static void main(String args[]) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); long k = Long.parseLong(st.nex.. 2023. 5. 10.
[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 3] 불량 사용자 - 64064 문제 요약 주어진 사용자 아이디 목록과 불량 사용자 아이디 목록에서, 불량 사용자 아이디 목록에 매핑되는 사용자 아이디 목록을 찾아내서 당첨에서 제외되어야 할 제재 아이디 목록의 경우의 수를 구하는 문제입니다. 각 사용자 아이디는 알파벳 소문자와 숫자로 이루어진 문자열입니다. 불량 사용자 아이디 목록은 각 아이디마다 문자열 내에서 일부 문자를 '*'로 가려서 주어집니다. 문제 분석 불량 사용자 아이디 목록에서 가능한 조합 구하기 각 불량 사용자 아이디에 대해 가능한 모든 사용자 아이디 조합 구하기 중복 제외한 가능한 경우의 수 구하기 DFS를 사용하자. 코드 import java.util.*; class Solution { static Set resultSet; public int solution(Str.. 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.