
유전 법칙 문제 링크 정답 코드 class Solution { public String[] solution(int[][] queries) { String[] result = new String[queries.length]; for(int i = 0; i < queries.length; i++) result[i] = queries[i][0] == 1 ? "Rr" : recursive(queries[i][0], queries[i][1]); return result; } private String recursive(int n, int p) { int cnt = (int) Math.pow(4, n - 1); if(p cnt / 4 * 3) return "rr"; if(n == 2) return "Rr"; if(..
외톨이 알파벳 문제 링크 정답 코드 import java.util.*; import java.util.stream.*; class Solution { public String solution(String input_string) { Map flag = new HashMap(); String[] input = input_string.split(""); String answer = ""; int i = -1; while(++i < input.length) { int j = i; while(j < input.length && input[i].equals(input[j])) j++; if(flag.getOrDefault(input[i], false)) answer += input[i]; if(i != j) i ..
체육대회 문제 링크 정답 코드 import java.util.stream.IntStream; class Solution { int[] board = new int[11]; int result; public int solution(int[][] ability) { for(int i = 0; i < ability.length; i++) board[i] = i; permutation(0, ability); return result; } private void permutation(int depth, int[][] ability) { int r = ability[0].length; if(depth == r) { result = Math.max(result, IntStream.range(0, r).map((i) ..
광물 캐기 문제 링크 정답 코드 import java.util.Arrays; import java.util.LinkedList; import java.util.Queue; class Solution { public int solution(int[] picks, String[] minerals) { int canDigCnt = Arrays.stream(picks).sum() * 5; if (minerals.length > canDigCnt) { // 광석의 개수가 곡괭이로 캘 수 있는 개수를 넘어간 상태 minerals = Arrays.copyOfRange(minerals, 0, canDigCnt); } int n = minerals.length / 5; if (minerals.length % 5 != 0..
무인도 여행 문제 링크 정답 코드 import java.util.*; import java.util.stream.*; class Solution { public int[] solution(String[] maps) { List result = new ArrayList(); int[] dx = { 1, 0, -1, 0 }; int[] dy = { 0, 1, 0, -1 }; boolean[][] check = new boolean[maps.length][maps[0].length()]; for(int i = 0; i < maps.length; i++) { for(int j = 0; j < maps[i].length(); j++) { if(maps[i].charAt(j) == 'X' || che..
과제 진행하기 import java.util.*; import java.util.stream.*; class Solution { public String[] solution(String[][] plansArr) { Plan[] plans = new Plan[plansArr.length]; for(int i = 0; i a.start - b.start); Stack stop = new Stack(); List answer = new ArrayList(); for(int i = 0; i < plans.length - 1; i++) { Plan cu..

두 원 사이의 정수 쌍 정답코드 class Solution { public long solution(int r1, int r2) { long result = 0; for(int x = 1; x < r2; x++) { double inner = Math.sqrt(Math.pow(r1, 2) - Math.pow(x, 2)); //inner는 r1 원의 방정식에서 찾은 y값 double outer = Math.sqrt(Math.pow(r2, 2) - Math.pow(x, 2)); //outer는 r2 원의 방정식에서 찾은 y값 long cnt = (long) outer - (long) inner; if(isInteger(inner)) cnt++; result += cnt * 4; } return result ..
성격 유형 검사하기 [https://school.programmers.co.kr/learn/courses/30/lessons/118666] 정답 코드 import java.util.*; class Solution { public String solution(String[] survey, int[] choices) { String[] type = { "RT", "CF", "JM", "AN" }; Map map = new HashMap(); for(int i = 0; i survey[i].charAt(1)) { //알파벳 순서가 뒤집혀있..
정답 코드 import java.util.*; class Solution { public String[] solution(String[] players, String[] callings) { Map numberMap = new HashMap(); // key가 순서, value가 이름 Map nameMap = new HashMap(); // key가 이름, value가 순서 for(int i = 0; i < players.length; i++) { // map 초기화 numberMap.put(i, players[i]); nameMap.put(players[i], i); } for(String calling : callings) { // 이름이 나오면 앞에 번호와 순서를 바꾼다. Integer i = na..