본문 바로가기

전체 글851

프린터 package programmers; import java.util.LinkedList; import java.util.Queue; public class 프린터 { //1. 인쇄 대기목록의 가장 앞에 있는 문저 J를 대기목록에서 꺼낸다. //2. 나머지 인쇄 대기목록에서 J보다 중요도가 높은 문서가 한 개라도 존재하면, J를 대기목록의 가장 마지막에 넣는다. //3. 그렇지 않으면 J를 인쇄한다. public static int solution(int[] priorities, int location) { Queue q = init(priorities, location); int answer = 0; int order = 0; while (!q.isEmpty()) { Pair poll = q.poll().. 2023. 1. 19.
N^2 배열 자르기 package programmers; import java.util.Arrays; public class N2배열자르기 { //(1,1)(1,2)(1,3) //(2,1)(2,2)(2,3) //(3,1)(3,2)(3,3) // == //max(1,1)max(1,2)max(1,3) = 1 2 3 //max(2,1)max(2,2)max(2,3) = 2 2 3 //max(3,1)max(3,2)max(3,3) = 3 3 3 // == //1차원 배열로 변환 //idx = 0 1 2 3 4 5 6 7 8 //value = 1 2 3 2 2 3 3 3 3 // idx / n = 2/3 = 0 + 1 = 1 // idx % n = 2%3 = 1 + 1 = 2 //1차원 배열 2번 idx 는 2차원 배열 (1,2)와 같.. 2023. 1. 18.
튜플 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.