본문 바로가기

휴지통665

튜플 package programmers; import java.util.ArrayList; import java.util.Arrays; import java.util.Comparator; import java.util.List; import java.util.StringTokenizer; public class 튜플 { //중복된 원소 허용 //원소의 순서가 다르면 서로 다른 튜플 //원소의 개수는 유한 public static int[] solution(String s) { List list = initList(s); List answer = new ArrayList(); for (int i = 0; i < list.size(); i++) { List integers = list.get(i); Intege.. 2023. 1. 16.
괄호 회전하기 package programmers; import java.util.Stack; public class 괄호회전하기 { public static int solution(String s) { int answer = 0; if (isProper(s)) { answer++; } for (int x = 1; x < s.length(); x++) { s = rotationBracket(s); if (isProper(s)) { answer++; } } return answer; } //괄호 회전하는 함수 private static String rotationBracket(String s) { return s.substring(1) + s.charAt(0); } //올바른 괄호 문자열인지 검사하는 함수 private.. 2023. 1. 14.
행렬의 곱셈 package programmers; import java.util.Arrays; public class 행렬의곱셈 { // ans[0][0] = arr1[0][0] * arr2[0][0] + arr1[0][1] * arr2[1][0] // ans[0][1] = arr1[0][0] * arr2[0][1] + arr1[0][1] * arr2[1][1] public static int[][] solution(int[][] arr1, int[][] arr2) { int[][] answer = new int[arr1.length][arr2[0].length]; for (int i = 0; i < arr1.length; i++) { for (int j = 0; j < arr2[0].length; j++) { fo.. 2023. 1. 13.
캐시 package programmers; import java.util.LinkedList; import java.util.Queue; public class 캐시 { //캐시 교체 알고리즘 LRU(Least Recently Used) //가장 오랫동안 참조되지 않은 페이지를 교체하는 방법 //cache hit = 실행시간 1 //cache miss = 실행시간 5 //영문자로만 구성, 대소문자 구분 x public static int solution(int cacheSize, String[] cities) { Queue caches = new LinkedList(); int time = 0; if (cacheSize == 0) { return cities.length * 5; } for (String ci.. 2023. 1. 12.
H-Index package programmers; import java.util.Arrays; public class H_Index { //h-index = 논문 n 편중 h번 인용된 논문이 h편 이상이고, 나머지 논문이 h번 이하 인용되었되었을 때 최대값 //1 2023. 1. 11.
멀리 뛰기 package programmers; public class 멀리뛰기 { //한번에 1칸 or 2칸 //1 1 = 1 //2 2 = 1+1, 2 //3 3 = 1+1+1,1+2 2+1, //5 4 = 1+1+1+1, 1+2+1, 1+1+2, 2+1+1, 2+2 public static long solution(int n) { long[] d = new long[n + 1]; if (n == 1) return 1; if (n == 2) return 2; d[0] = 0; d[1] = 1L; d[2] = 2L; for (int i = 3; i 2023. 1. 10.