Java 알고리즘과 정렬, 람다식 완벽 가이드

알고리즘 개요 검색 알고리즘 1. 순차 검색 (Linear Search) 배열의 첫 번째 인덱스부터 순서대로 원하는 값을 찾는 가장 기본적인 방법입니다. public class LinearSearchExample { public static void main(String[] args) { int[] numbers = {131, 127, 147, 81, 103, 23, 7, 79}; int target = 82; System.out.println(exists(numbers ...

5월 25일 12:04에 게시됨

NOI 2025 연습 문제 풀이 기록 (제5회)

라운드 #77 - 20250521 A. 직렬 연결 (link) 문제 요약 각 정점에 두 가중치 \(a_i, b_i\)를 가진 트리가 주어진다. 단순 경로가 "좋은 경로"가 되려면 경로상의 \(b\) 합계와 경로상의 최소 \(a\) 값의 곱이 상수 \(V\) 이상이어야 한다. 모든 좋은 경로 중 \(\sum b\)의 최솟값을 구한다. 핵심 아이디어 정점 분할을 적용하면 조건은 \((B_u+B_v)\min(A_u,A_v) \ge V\) ...

5월 24일 02:35에 게시됨

C 언어 팩토리얼 구현: 재귀와 반복 방식 비교

팩토리얼 계산은 C 언어 학습 과정에서 자주 등장하는 기초 알고리즘 문제입니다. n 팩토리얼은 1부터 n까지 모든 양의 정수를 곱한 값으로, 수학적으로 n!로 표기합니다. 예를 들어 6! = 6 × 5 × 4 × 3 × 2 × 1 = 720입니다. C 언어로 팩토리얼을 구현할 때 주로 두 가지 접근법을 사용합니다. 첫째는 함수가 자기 자신을 호출하는 재귀적 방식이며, 둘째는 반복문을 활 ...

5월 23일 10:53에 게시됨

AtCoder ABC388 문제 풀이 분석

A - UPC 조합 문제 개요 입력 문자열의 첫 번째 글자 뒤에 "UPC"를 붙여 출력한다. 핵심 아이디어 문자열 인덱싱을 활용한 단순 구현. 구현 #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); string str; cin >> str; cout << str.front() << "UPC" <&l ...

5월 22일 13:43에 게시됨

STL 알고리즘을 활용한 컨테이너 조작 기법

비변형 시퀀스 알고리즘 이러한 알고리즘은 원본 컨테이너의 내용을 변경하지 않으며, 요소를 검색하거나 조건을 평가하는 데 사용됩니다. 요소 탐색: find 계열 함수 find(시작, 끝, 값): 지정된 값과 일치하는 첫 번째 요소의 반복자를 반환합니다. 못 찾으면 end()를 반환. find_if(시작, 끝, 조건함수): 조건을 만족하는 첫 번째 요소를 찾습니다. find_end(시작, 끝 ...

5월 22일 11:00에 게시됨

코드포스 대회 문제 풀이: B, C번 풀이 모음

최근 진행된 Codeforces 대회들의 주요 문제 풀이를 모아서 정리했습니다. 각 문제는 배열 처리, 구간 합, 그리디 알고리즘 등의 기법을 활용하여 효율적으로 해결할 수 있습니다. Educational Codeforces Round 132 (Div. 2) – B번 수열이 주어질 때 특정 구간에서 인접 원소 간 차이의 합을 구하는 문제입니다. 오른쪽으로 이동할 때 증가 폭과 감소 폭을 각각 별도로 ...

5월 22일 09:50에 게시됨

Python 기초 문제 풀이 및 해설

Python 기초 문제 풀이 문제 1: 행운의 숫자 쌍 두 숫자가 차이가 3이고 각 자릿수의 합이 6으로 나누어떨어지는 행운의 숫자 쌍을 판별하는 함수를 작성하세요. 모든 3자리 행운의 숫자 쌍을 찾아야 합니다. def is_lucky_number(num): hundreds = num // 100 tens = (num // 10) % 10 units = num % 10 digit_sum = hundreds + tens + units ...

5월 21일 01:05에 게시됨

트리 동적 계획법 핵심 정리

트리 DP 개요 트리 구조에서 동적 계획법을 적용하는 방법론인 트리 DP(Tree Dynamic Programming)는 계층적 데이터를 효율적으로 처리하는 핵심 기법이다. 루트에서 시작해 하위 노드로 전파되는 특성을 활용하며, 자식 노드들의 결과를 조합하여 부모 노드의 최적해를 도출하는 방식으로 작동한다. 핵심 원리 트리 DP의 본질은 정보의 상향 전달에 있다. 각 노드가 ...

5월 20일 13:54에 게시됨

Codeforces Round #483 (Div. 2) [Thanks, Botan Investments and Victor Shaburov!]

A. 게임 두 명의 플레이어가 번갈아가며 숫자를 제거하는 게임을 한다. 초기에 보드 위에 n개의 정수가 존재하며, 각 턴마다 한 명의 플레이어가 하나의 수를 지운다. 이 과정은 보드에 하나의 수만 남을 때까지 반복된다. 선공은 첫 번째 턴을 맡으며, 이후 턴은 플레이어가 번갈아 진행한다. 선공은 최종 남는 수를 최소화하고자 하며, 후공은 이를 최대화하려 한다. 두 ...

5월 20일 12:01에 게시됨