백준 기록 (solved.ac) + 프로그래머스 기록
1. 연속 일수어려운 문제 위주로만 푸려다 보니 하루에 하나씩 푸는게 힘들어짐2. 랭크 (골드 3)3. 클래스 진행 상황4. 프로그래머스
- Java/알고리즘(코테)
- · 2025. 2. 4.
목차0. 들어가며자바로 멀티스레드 프로그래밍을 하다 보면 필연적으로 마주치는 키워드가 바로 synchronized다. 최근까지 나는 synchronized키워드의 원리를 정확히 이해하지 못한 채 단순히 "동시 접근을 막는다" 정도로만 알고 사용했다. 이번에 개념을 명확히 정리하면서 특히 "모니터 락(Monitor Lock)"이라는 개념을 접하게 되어 많은 것을 새롭게 깨달았다. 1. 모니터 락이란?모니터 락은 자바의 모든 객체에 내장된 고유한 락이다. 자바는 모든 객체가 생성될 때 내부적으로 하나의 락을 기본으로 제공한다. 이를 "내재적 락(intrinsic lock)"이라 하며, synchronized 키워드가 사용될 때 이 락을 이용해서 동기화를 처리한다. 쉽게 말하면, synchronized를 붙인..
목차1. 문제https://www.acmicpc.net/problem/9764 문제 양의 정수 N (1 ≤ N ≤ 2000)을 서로 다른 자연수의 합으로 나타내는 방법은 여러 가지가 있다. 예를 들어: N = 5인 경우51 + 42 + 3 (총 3가지) N = 6인 경우61 + 52 + 41 + 2 + 3 (총 4가지)N이 주어졌을 때, 서로 다른 자연수의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력첫째 줄에, 테스트 케이스의 개수 T (1 ≤ T ≤ 20)이 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다.출력각 테스트 케이스마다 N을 서로 다른 자연수의 합으로 나타내는 방법의 수 100999로 나눈 나머지를 출력한다.2. 풀이📌 문제의 핵심 분석자연수는 중..
목차0. 파일 복사 코드import java.io.*;public class FileCopier { private static final int BUFFER_SIZE = 8192; // 8KB public static void main(String[] args) { File source = new File("test.txt"); File target = new File("test_copy.txt"); try { copyFile(source, target); System.out.println("파일 복사가 완료되었습니다."); } catch (InvalidPathException e) { ..
1. 문제https://www.acmicpc.net/problem/323942. 코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); final int MOD = 1_000_000_007; String[] input = br.readLine().split(" "); in..
1. 연속 일수어려운 문제 위주로만 푸려다 보니 하루에 하나씩 푸는게 힘들어짐2. 랭크 (골드 3)3. 클래스 진행 상황4. 프로그래머스
1. 문제https://www.acmicpc.net/problem/7662문제이중 우선순위 큐(dual priority queue)는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료 구조이다. 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산(operation) 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터 중 하나를 삭제하는 점이다. 이중 우선순위 큐를 위해선 두 가지 연산이 사용되는데, 하나는 데이터를 삽입하는 연산이고 다른 하나는 데이터를 삭제하는 연산이다. 데이터를 삭제하는 연산은 또 두 가지로 구분되는데 하나는 우선순위가 가장 높은 것을 삭제하기 위한 것이고 다른 하나는 우선순위가 가장 낮은 것을 삭제하기 위한 것이다.정수만 저장하는 이중 우선순위 큐 Q가 있다고..