티스토리챌린지 10

99클럽 코테 스터디 26일차 TIL - 정렬

문제백준 11004 [K번째 수]문제 링크:  https://www.acmicpc.net/problem/11004 해결 방법정렬을 사용한 접근배열 정렬: 먼저, 주어진 배열을 오름차순으로 정렬합니다.정렬을 통해 KKK-번째 수를 찾을 수 있습니다.KKK-번째 값 찾기: 정렬된 배열에서 K−1K-1K−1번째 인덱스를 반환합니다 import java.io.*;import java.util.*;class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenize..

99클럽 코테 스터디 25일차 TIL - 힙

문제프로그래머스 [더 맵게]문제 링크:  https://school.programmers.co.kr/learn/courses/30/lessons/42626문제 접근 방식최소 힙(PriorityQueue) 사용 이유가장 낮은 두 개의 값을 반복적으로 찾아야 하므로 최소 힙이 적합합니다.최소 힙을 사용하면 힙에서 최솟값을 poll로 꺼내고, 새 값을 add하는 작업이 O(log⁡N)O(\log N)O(logN)의 시간 복잡도로 이루어집니다.문제 해결 과정배열 scoville의 모든 원소를 최소 힙에 삽입합니다.힙의 최솟값이 KKK 이상이 될 때까지 아래 작업을 반복합니다:힙에서 가장 작은 두 값을 꺼냅니다.새로운 스코빌 지수를 계산해 힙에 추가합니다.섞은 횟수를 증가시킵니다.힙에 남은 원소가 하나인데도 KK..

99클럽 코테 스터디 24일차 TIL - 힙

문제백준 1417 [국회의원 선거]문제 링크:  https://www.acmicpc.net/problem/1417문제 접근 방식목표 정의기호 1번인 다솜이가 다른 모든 후보의 득표수를 초과해야 한다.이 목표를 달성하기 위해 최소한의 사람만 매수해야 한다.문제의 핵심다른 후보들 중 득표수가 가장 높은 사람부터 매수해야, 매수 효과를 극대화할 수 있다.매수를 할 때, 매수된 사람은 다솜이의 득표수에 추가되고, 매수된 후보의 득표수는 감소한다.이를 반복하며 다솜이의 득표수가 나머지 후보들의 득표수를 모두 초과하는 시점을 찾아야 한다.자료구조 선택매수 대상(득표수 높은 후보)을 효율적으로 선택하기 위해 **최대 힙(PriorityQueue with reverse order)**을 사용한다.peek를 사용하여 최..

99클럽 코테 스터디 19일차 TIL - 힙

문제백준 1927 [최소 힙]문제 링크:  https://www.acmicpc.net/problem/1927접근 방법문제 요구사항 분석최소 힙 자료구조를 사용하여 정수 값을 관리한다.0 입력 시 최소값 출력 및 제거, 그 외의 숫자는 힙에 추가한다.힙이 비어있는 상태에서 0이 입력되면 0을 출력한다.효율성 고려PriorityQueue를 사용하여 최소 힙을 구현한다.BufferedReader를 통해 효율적으로 입력받는다.각 연산을 입력받는 즉시 처리하며, 결과는 즉시 출력한다.코드의 주요 포인트PriorityQueue를 사용하여 최소 힙 구현queue.add(val) : 값을 힙에 추가한다.queue.poll() : 힙의 최솟값을 제거하며 반환한다.queue.isEmpty() : 힙이 비어 있는지 확인한다..

99클럽 코테 스터디 18일차 TIL - 스택/큐

문제백준 [식당 입구 대기 줄]문제 링크:  https://www.acmicpc.net/problem/26042 해결 방법대기열을 큐로 구현하여 학생들이 순서대로 줄을 서게 하고, 앞에서 식사를 시작할 때마다 맨 앞에 있는 학생을 제거각 명령 처리 후 큐의 길이를 확인하여, 대기하는 학생 수의 최대값을 갱신만약 같은 대기 수가 반복되면 맨 뒤의 학생 번호가 가장 작은 경우를 선택명령을 하나씩 순서대로 처리하며 큐에 학생을 추가하거나 제거코드import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new ..

99클럽 코테 스터디 17일차 TIL - 스택/큐

문제백준 25497 [기술 연계마스터 임스]문제 링크:  https://www.acmicpc.net/problem/25497문제 접근 방법각 숫자 기술은 연계가 필요하지 않으므로 항상 count를 증가연계 기술인 'L-R', 'S-K'는 사전 기술이 확보되었을 때만 발동하도록 사전 기술 없이 본 기술을 사용하면 이후 기술들도 발동할 수 없으므로 즉시 반복문을 탈출코드import java.io.*;public class Main { public static void main(String[] args) throws Exception { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter b..

99클럽 코테 스터디 16일차 TIL - 스택/큐

문제백준 2161 [카드1]문제 링크:  https://www.acmicpc.net/problem/2161 해결 방법루프에서 카드가 한 장 남을 때까지 버리기와 이동 작업을 반복문자열에 모든 버린 카드를 추가하고, 마지막에 남은 카드도 result에 추가하여 출력 형식코드import java.util.LinkedList;import java.util.Queue;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); // 카드의 개수 입력받기 Queue queue..

99클럽 코테 스터디 14일차 TIL - 스택/큐

문제백준 10845 [큐]문제 링크:  https://www.acmicpc.net/problem/10845 해결 방법LinkedList로 큐를 생성 각 입력 값에 일치하는 연산 구현코드import java.io.BufferedReader;import java.io.InputStreamReader;import java.io.IOException;import java.util.LinkedList;import java.util.Queue;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Sys..

카테고리 없음 2024.11.11

99클럽 코테 스터디 13일차 TIL - 스택/큐

문제백준 12605 [단어순서 뒤집기]문제 링크:  https://www.acmicpc.net/problem/12605 해결 방법split()으로 공백 기준으로 단어를 분리Collections.reverse() 메서드로 분리된 단어의 순서를 뒤집기String.join()로 단어들을 이어 붙임코드import java.util.*;public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int N = Integer.parseInt(scanner.nextLine()); // 테스트 케이스 개수 for (int i..

카테고리 없음 2024.11.09

99클럽 코테 스터디 11일차 TIL - 해시

문제프로그래머스 [완주하지 못한 선수]문제 링크:  https://school.programmers.co.kr/learn/courses/30/lessons/42576해결 방법Arrays.sort를 통해 두 배열을 정렬이름이 순서대로 정렬되므로 같은 이름이 같은 위치에 놓이게 됩니다.for 문을 사용하여 참가자 배열과 완주자 배열을 하나씩 비교하고 비교 중 다른 이름이 그 이름을 반환만약 completion 배열과 모두 일치한다면, participant 배열의 마지막 사람을 반환코드import java.util.Arrays;class Solution { public String solution(String[] participant, String[] completion) { // 1. 참가..