본문 바로가기

프로그래머스9

[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.
[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 1] 두 개 뽑아서 더하기 - 68644 (JAVA) 문제 요약 정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해 주세요. 문제 분석 Set을 사용해 중복값을 제거하며 이중반복문을 사용해 두 수를 더해가며 set에 저장 후 정렬하면 된다. 코드 import java.util.*; class Solution { public int[] solution(int[] numbers) { // 결과값을 저장할 answer 배열을 선언 int[] answer; // 중복값을 제외하며 숫자의 합을 저장할 Set을 선언. Set set = new HashSet(); // numbers 배열의 원소들을 순회하며 가능한.. 2023. 5. 7.
[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.