본문 바로가기

휴지통665

숫자 변환하기 package programmers; public class 숫자_변환하기 { public static final int MAX_VALUE = Integer.MAX_VALUE; //자연수 x -> y 변환 //가능한 연산 //1. x + n //2. x * 2 //3. x * 3 //최소 연산 횟수 반환 //x -> y 가 불가능할 시 -1 //1 2023. 3. 2.
수식 최대화 package programmers; import java.util.ArrayList; import java.util.List; public class 수식_최대화 { // 우선순위 경우의 수 6 // * + - // * - + // + * - // + - * // - * + // - + * public static long solution(String expression) { List num = new ArrayList(); List operator = new ArrayList(); init(expression, num, operator); long ans = 0; ans = max(new ArrayList(num), new ArrayList(operator), "*", "+", "-", ans); a.. 2023. 3. 1.
방금그곡 package programmers; import java.util.ArrayList; import java.util.List; import java.util.StringTokenizer; public class 방금그곡 { //음악 제목, 재생이 시작되고 끝난 시각, 악보를 제공 // C, C#, D, D#, E, F, F#, G, G#, A, A#, B 음은 12개 // 각 음은 1분에 1개씩 재생 // 음악은 처음부터 재생되며 음악 길이보다 재생된 시간이 길 때는 반복재생 // 음악이 더 길면 재생시간 만큼만 재생 // 여러개 음악이 일치할경우 재생된 시간이 제일 긴 음악 제목 반환, 재생된 시간이 같으면 먼저 입력된 음악 제목 // 일치하는 음악이 없는 경우 (None) 반환 public stat.. 2023. 2. 28.
뒤에 있는 큰 수 찾기 package programmers; import java.util.Arrays; import java.util.Stack; public class 뒤에_있는_큰_수_찾기 { //배열의 각 원소들에 대해 자신보다 뒤에 있는 숫자 중에서 자신보다 크면서 가장 가까이 있는 수를 큰 수 //큰수가 존재하지 않으면 -1을 담음 public static int[] solution(int[] numbers) { int[] answer = new int[numbers.length]; Stack s = new Stack(); for (int i = 0; i < numbers.length; i++) { while (!s.isEmpty() && numbers[s.peek()] < numbers[i]) { answer[s... 2023. 2. 27.
두 큐 합 같게 만들기 package programmers; import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; import java.util.stream.Collectors; public class 두_큐_합_같게_만들기 { //길이가 같은 큐 두 개 //하나의 큐를 골라 원소를 pop, 다른 큐에 push = 1회 //두 큐의 원소 합이 같도록 만듦 //가능한 경우의 수 //1. q1 == q2 //2. q1 -> q2(sum/2 q1(sum/2 > q2) public static int solution(int[] queue1, int[] queue2) { // 두 큐의 합을 구하기 long queue1Su.. 2023. 2. 26.
괄호 변환 package programmers; import java.util.Stack; public class 괄호_변환 { public static String solution(String p) { return go(p); } private static String go(String p) { //1. 입력이 빈 문자열인 경우, 빈 문자열 반환 if (p.equals("")) { return ""; } StringBuilder sb = new StringBuilder(); String[] tmp = splitString(p); String u = tmp[0]; String v = tmp[1]; //3. 문자열 u가 올바른 괄호 문자열이라면 문자열 v에 대해 1단계부터 다시 수행 if (isBracket(u)) .. 2023. 2. 24.