목록Java (133)
코딩응급실
import java.util.*; class Solution { public int solution(int[] order) { int answer = 0; Stack stack = new Stack(); int index = 0; for (int i = 1; i
import java.util.*; class Solution { public static String[] solution(String[] files) { Arrays.sort(files, new Comparator() { @Override public int compare(String file1, String file2) { String[] splitFile1 = splitFileName(file1); String[] splitFile2 = splitFileName(file2); int headCompare = splitFile1[0].compareToIgnoreCase(splitFile2[0]); if (headCompare == 0) { int number1 = Integer.parseInt(spl..
import java.util.*; class Solution { public String[] solution(String[] record) { List actionDetails = new ArrayList(); Map uidToNickname = new HashMap(); for (String r : record) { String[] details = r.split(" "); String action = details[0]; String uid = details[1]; if (!action.equals("Leave")) { // Enter 또는 Change인 경우, 최신 닉네임으로 업데이트 String nickname = details[2]; uidToNickname.put(uid, nickname);..
import java.util.HashMap; class Solution { public int solution(int[] topping) { int answer = 0; HashMap toppingCnt = new HashMap(); int uniqueToppings = 0; // 고유 토핑 종류의 수 // 전체 토핑 종류의 수를 계산합니다. for (int top : topping) { if (!toppingCnt.containsKey(top)) { uniqueToppings++; } toppingCnt.put(top, toppingCnt.getOrDefault(top, 0) + 1); } HashMap leftToppings = new HashMap(); int leftUniqueToppings =..
import java.util.*; class Solution { public int solution(String skill, String[] skill_trees) { int answer = 0; // 가능한 스킬트리의 개수를 저장할 변수 for (String skillTree : skill_trees) { // 스킬트리 배열을 순회 boolean isValid = true; // 현재 스킬트리가 유효한지 여부를 저장할 변수 int lastSkillIndex = -1; // 마지막으로 발견된 선행 스킬의 인덱스 for (int i = 0; i < skillTree.length(); i++) { // 현재 스킬트리의 각 스킬을 순회 int index = skill.indexOf(skillTree.char..
import java.util.*; class Solution { public int solution(int[][] land) { // land 배열의 행 수 int n = land.length; // 동적 프로그래밍을 위한 배열 복사 int[][] dp = new int[n][4]; for (int i = 0; i < 4; i++) { dp[0][i] = land[0][i]; } // 각 행에 대해 최대 점수 계산 for (int i = 1; i < n; i++) { for (int j = 0; j < 4; j++) { int maxVal = 0; for (int k = 0; k < 4; k++) { if (j != k) { // 이전 행에서 같은 열을 제외 maxVal = Math.max(maxVal..
문제에 있는 예시만 보면 훼이크에 걸리기 너무 쉽게 해놨다. import java.util.*; class Solution { public int[] solution(int[] prices) { int[] answer = new int[prices.length]; Stack stack = new Stack(); for (int i = 0; i < prices.length; i++) { while (!stack.isEmpty() && prices[i] < prices[stack.peek()]) { answer[stack.peek()] = i - stack.peek(); System.out.println("answer["+stack.peek()+"] i: "+i+" - peek: "+stack.peek())..
import java.util.*; public class Solution { public static String solution(int n, int t, int m, int p) { StringBuilder totalNumbers = new StringBuilder(); StringBuilder result = new StringBuilder(); // 최대로 필요한 길이를 계산합니다. 튜브가 말해야 하는 숫자의 개수 * 참가자 수 int maxLen = t * m; int num = 0; // 최대 필요 길이까지 숫자를 변환하여 문자열로 추가합니다. while (totalNumbers.length() < maxLen) { totalNumbers.append(Integer.toString(num, n..