99클럽 썸네일형 리스트형 99클럽 코테 스터디 13일차 TIL + Programmers 입국 심사대 java 1. 문제 설명문제 링크2. 접근 방식KEY WORD: 이분 탐색무엇을 기준 으로 이분탐색을 해야할까?이분 탐색 문제를 풀 때, 제일 어려운 부분이다. 어려운 문제일수록 무엇을 기준으로 이분 탐색을 해야할지 감이 서지 않는다. 나 또한 그랬다. 그래서 다른 사람의 풀이 아이디어까지 봤다. 분명 1년 전에 같은 문제를 백준으로 풀었는데, 안 떠올라서 좀 좌절 했다 ㅜ(1) 기준 : M 시간 당 각 심사대에서 처리하는 사람의 수내 기준에서 어려웠던 점은 규칙 - 심사대가 비더라도, 사람은 다른 심사대가 빌 때까지 기다렸다가 들어갈 수 있다. 였다. 이 자율성 때문에, 문제의 유형을 생각하지 못한 것 같다. 하지만 기억해야할 점은, 무엇을 이분 탐색 해야할지 모르겠을 때는, 반환하는 답을 기준으로 탐색할 것이.. 더보기 99클럽 코테 스터디 9일차 TIL + 백준 1927 최소힙 java 1. 문제 설명문제 링크2. 접근 방식이건 뭐 Priority Queue 쓸 줄 아냐고 묻는 문제였다.PQ를 만든다. (default로 오름차순 정렬이니 건들일 것이 없다.)문제에서 제공하는 Order에 따른다. (0이면 출력, 나머지면 저장)3. 코드 분석import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); PriorityQueue pq = new PriorityQueue(); .. 더보기 99클럽 코테 스터디 8일차 TIL + Programmers 두 큐의 합 같게 만들기 (java) 1. 문제 설명문제 링크2. 접근 방식KEY WORD: GREEDY문제 설명 그대로 Queue 두 개를 만든다.총합이 큰 쪽의 queue.peek()을 poll 해서 다른 쪽 큐에 추가한다.2번 종료 후 두 큐의 총합이 같은지 검사한다.만약 같으면, 2번을 행한 횟수를 출력한다. 만약 두 큐의 총 길이 + 1 만큼 해도 두 큐의 합이 같지 않으면 -1을 출력하고 종료 한다.두 큐의 총 길이 + 1 만큼 반복해야 하는 이유는 뒤에서 설명.3. 코드 분석import java.io.*;import java.util.*;class Solution { public int solution(int[] queue1, int[] queue2) { ArrayDeque a = new ArrayDeque().. 더보기 99클럽 코테 스터디 5일차 TIL + Programmers 베스트 앨범 1. 문제 설명문제 링크2. 접근 방식KEY WORD: Sorting, HashMap음악 객체를 만든다. ( 멤버 변수: 자신의 고유번호, 장르, 플레이 횟수 )입력 값들을 전부 음악 객체로 바꿔서 ArrayList에 추가한다.HashMap을 만든다. Key = 장르 , value = 장르에 해당하는 곡들의 플레이 총합2번에서 만든 ArrayList를 정렬한다. 정렬 기준은 문제 그대로다. -> Comparator를 단순화한 Lamda 식을 이용해 구현답변용 ansList를 만들고, 답변에 장르별로 몇 번 들어갔는지를 나타내는 genreAddedCount라는 HashMap도 하나 더 만든다.genreAddedCount는 Key = 장르, value = 장르 별로 답변 List에 나온 횟수 이다. .get.. 더보기 99클럽 코테 스터디 4일차 TIL + Programmers 문자열 압축 1. 문제 설명문제 링크2. 접근 방식부분 문자열은 크기 1부터 N/2까지만 생각하면 된다. (N = 문자열의 길이)왜냐하면, 부분 문자열의 크기가 절반 이상이면 반복이 불가하므로, 세는 의미가 없다. 1번에서 정한 문자열 크기만큼 처음부터 자른다. 이 행위는 0 ~ N - i 까지만 반복한다. 부분문자열을 구하는 substring(startIndex, endIndex)에서 endIndex가 배열의 범위를 넘어가면 예외가 발생한다. 우리는 substring(startIndex, startIndex+i)만큼 항상 할 것이므로, endIndex가 배열의 범위를 넘어서지 않도록 반복의 범위를 위와 같이 정한다.최초 자른 부분 문자열은 중복 체크가 불가하므로 이전 문자열(이하 prev)에 저장한다.이전 문자열과.. 더보기 99클럽 코테 스터디 3일차 TIL + Programmers 숫자 문자열과 영단어 java 1. 문제 설명문제 링크2. 접근 방식KEY WORD: Brute forcekey=String, value=Integer인 map에 문자로 표현한 숫자 =int형 숫자로 1~9까지 모든 숫자를 저장한다.포인터를 하나 사용하여 해당 포인터가 가르키는 값을 word 란 StringBuilder에 저장한다.(1) word의 길이가 3이상이면 map에 해당 값을 key로 가지는 값이 있나 계속 확인(2) 있으면 해당 수를 숫자로 바꾸어 답변이 되는 ans에 저장하고 word를 비운다.(3) 없으면 포인터를 한 칸 이동하여 word를 또 채운다.(4) 만약 숫자라면 ans에 값 저장하고 바로 건너 뛰기.3. 코드 분석import java.io.*;import java.util.*;class Solution { .. 더보기 이전 1 2 다음