목록[코딩테스트] (68)
요르딩딩
여러가지 경우에따라 정렬하는 법에 대해 정리해 보았습니다. 종종 정렬을 해야할 경우 아래의 방법을 사용하면 보다 편리하게 정렬할 수 있습니다. 여기서 중요한 포인트를 알아보겠습니다. 1. int[]의 경우 Arrays.sort를 이용하여 오름차순으로 정렬하기 위해서는 Integer[]로 변환 후 정렬해야합니다. 2. 배열을 출력하기 위해서는 Arrays.toSring(arr)를 사용합니다. 3. map의 key값 기준 정렬하기 TreeMap을 사용합니다. 3. map의 value값 기준 정렬하기 위해서는 entrySet애 Comparator 인터페이스를 사용합니다. - Comparator 인터페이스를 생성하여 compare 오버라이드 하여 재정의하여 사용합니다. 4. ArrayList에 존재하는 인덱스 ..
class Solution { static int[] stay, tot; public int[] solution(int N, int[] stages) { int[] answer = new int[N]; // 초기화 stay = new int[N + 2]; //모두 다 클리어한 경우 N+2 tot = new int[N + 2]; for (int i = 0; i < stages.length; i++) { int value = stages[i]; stay[value]++; for (int j = 1; j i).toArray(); //*********** //Arrays.sort(tot, Collections.reverseOrder()); // 역순 //answer = Arrays.stream(tot).mapT..
이번문제는 문자열에 관련된 문제이다. 처음에는 쉽게 접근했으나, 조건들이 여러개 있거 확인하는데, 시간이 걸렸던것 같다. 여기서는 몇가지 포인트들만 구현할 줄 알면 된다. 포인트는 아래 3가지가 있다. 특수한 두개의 문자를 중복되지 않는 한개의 문자로 대체해서 사용한다. 시간간의 차이는 모두 분으로 만들어 계산한다. : 06:30 ~ 07:10 -> 430분 - 390분 = 40분 일정한 숫자를 반복해서 붙일때 : 나머지(%)를 사용 5/4 = 1...(1) = (인덱스 % 반복길이) 추가로 런타임에러가 났었는데, 아래 2가지를 수정하여 해결했다. 시간차이, 제목을 저장할 map 대신 static 변수 사용으로 대체 if문 두번 질의하던것을 OR을 적용하여 하나의 if문으로 수행 import java.u..
이런문제는.. 진짜 은근 너무 어렵게 느껴지는것같다. 1/3의 몫은 0, 2/3의 몫은 0 이므로 몫이 0이 아닌경우만 반복하면 된다. 몫이 0이 될때까지 남으면 몫도 나머지가 되는 방법을 생각한다면 쉽다. 하지만 생각하기가 쉽지 않았다... 이런 쉬운듯한 어려운문제를 풀고나면 기분이 찜찜하다.. class Solution { public String solution(int n) { String answer = ""; while (n!=0) { n = n / 3; // 몫 : 3보다 작은 수로 나누면 몫이 0이다 int mod = n % 3; // 나머지 if (mod == 0) { n = n-1; answer = "4" +answer; } else { answer = mod +answer; } } re..
이번문제는 검색해서 찾아보기 전까지는 해결방법을 적용하기가 어려웠다고 생각한다. 찾아보니 comparator와 정규식을 사용하면 보다 편하게 풀 수 잇었다는것을 배울 수 있었다. 이번기회에 comparator와 정규식을 익혀야겠다 import java.util.*; class Solution { public String[] solution(String[] files) { String[] answer = {}; compartor c = new compartor(); Arrays.sort(files, c); return files; } } class compartor implements Comparator{ @Override public int compare(String o1, String o2) { Str..
https://programmers.co.kr/learn/courses/30/lessons/92341 코딩테스트 연습 - 주차 요금 계산 [180, 5000, 10, 600] ["05:34 5961 IN", "06:00 0000 IN", "06:34 0000 OUT", "07:59 5961 OUT", "07:59 0148 IN", "18:59 0000 IN", "19:09 0148 OUT", "22:59 5961 IN", "23:00 5961 OUT"] [14600, 34400, 5000] programmers.co.kr 이번문제를 풀면서 다시한번 알아두면 좋은 기능들을 확인해볼 수 있었다. 1. map에 key기준 오름차순으로 정렬해주는 TreeMap 2. map에 누적값을 넣을때 사용하면 좋은 map..
https://programmers.co.kr/learn/courses/30/lessons/62048 코딩테스트 연습 - 멀쩡한 사각형 가로 길이가 Wcm, 세로 길이가 Hcm인 직사각형 종이가 있습니다. 종이에는 가로, 세로 방향과 평행하게 격자 형태로 선이 그어져 있으며, 모든 격자칸은 1cm x 1cm 크기입니다. 이 종이를 격자 선을 programmers.co.kr 이번문제는 구현하기는 쉬우나 구현을 위한 규칙을 찾기가 너무 어려운 문제인거 같다. 이게 정령 레벨2의 문제란 말인가... 최대한 규칙을 찾으려고 2차원 배열로 각각의 경우를 다 적어봤으나 찾을 수 없어, 검색을 통하여 풀이를 확인 한 뒤 구현을 하였다. 규칙 : 가로 * 세로 - (가로 + 세로 - 최대공약수) 이번문제를 통해 최대공..