목록Java (133)
코딩응급실
# 셋째 날부터 시작하는 10일간의 할인 행사는 다음과 같습니다: 사과, 바나나, 쌀, 사과, 돼지고기, 바나나, 돼지고기, 쌀, 냄비, 바나나. 이를 정현이가 원하는 제품과 수량과 비교해보면, 사과 2개, 바나나 3개, 쌀 2개, 돼지고기 2개, 냄비 1개를 구매할 수 있습니다. 따라서 셋째 날에 회원가입을 하면 원하는 제품을 모두 할인 받을 수 있습니다. # 넷째 날부터 시작하는 10일간의 할인 행사는 다음과 같습니다: 바나나, 쌀, 사과, 돼지고기, 바나나, 돼지고기, 쌀, 냄비, 바나나, 사과. 이를 정현이가 원하는 제품과 수량과 비교해보면, 사과 2개, 바나나 3개, 쌀 2개, 돼지고기 2개, 냄비 1개를 구매할 수 있습니다. 따라서 넷째 날에 회원가입을 하면 원하는 제품을 모두 할인 받을 수 ..
import java.util.*; class Solution { public int solution(String s) { int answer = 0; for(int i = 0; i < s.length(); i++) { String rotated = s.substring(i) + s.substring(0, i); if(isValid(rotated)) { answer++; } } return answer; } private boolean isValid(String s) { Stack stack = new Stack(); for(char c : s.toCharArray()) { if(c == '(' || c == '[' || c == '{') { stack.push(c); } else { if(stack.i..

길이가 1인 연속 부분 수열로부터 [1, 4, 7, 9] 네 가지의 합이 나올 수 있습니다. 길이가 2인 연속 부분 수열로부터 [2, 5, 10, 11, 16] 다섯 가지의 합이 나올 수 있습니다. 길이가 3인 연속 부분 수열로부터 [6, 11, 12, 17, 20] 다섯 가지의 합이 나올 수 있습니다. 길이가 4인 연속 부분 수열로부터 [13, 15, 18, 21] 네 가지의 합이 나올 수 있습니다. 길이가 5인 연속 부분 수열로부터 [22] 한 가지의 합이 나올 수 있습니다. 이들 중 중복되는 값을 제외하면 다음과 같은 18가지의 수들을 얻습니다. [1, 2, 4, 5, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 18, 20, 21, 22] import java.util.*; ..
import java.util.*; class Solution { public int solution(int k, int[] tangerine) { /* 예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다. */ Map map = new HashMap(); for (int t : tangerine) { map.put(t, map.getOrDefault(t, 0) + 1); } PriorityQueue pq = new PriorityQueue((a, b) -> m..
import java.util.*; class Solution { public int solution(int n) { int[] dp = new int[n + 1]; dp[1] = 1; if (n > 1) { dp[2] = 2; } for (int i = 3; i
import java.util.*; class Solution { public int solution(int n, int a, int b) { int round = 0; while (a != b) { a = (a + 1) / 2; b = (b + 1) / 2; round++; } return round; } public static void main(String[] args) { int N = 8; int A = 4; int B = 7; Solution sol = new Solution(); int result = sol.solution(N, A, B); System.out.println(result); } } 총 8명이 있을 때 4번 선수와 7번수가 만날 수 있는 라운드를 묻는 것이다. 4번 선수와 7..
import java.util.*; class Solution { public static int gcd(int a, int b) { while(b!=0){ int r = a%b; a= b; b= r; } return a; } public static int lcm(int a, int b) { return a * b / gcd(a, b); } public static int solution(int[] arr) { int answer = arr[0]; for (int i = 1; i < arr.length; i++) { answer = lcm(answer, arr[i]); } return answer; } public static void main(String[] args) { int[] arr = {2,..
import java.util.*; class Solution { public int solution(int[] people, int limit){ // 50 50 70 80 Arrays.sort(people); int answer = 0; int index = 0; for (int i = people.length - 1; i >= index; i--) { // 3, 0) 80 + 50 No. answer++ // 2, 0) 70 + 50 No. answer++ // 1, 0) 50 + 50 Yes. index++!! answer++ // 0 >= 1 for문 조건 불만족하므로 종료 if (people[i] + people[index]