코딩테스트 17

[Dart] 람다 함수 사용 lambda (with 백준 1181)

Dart에서는 람다 함수(Lambda Function)를 사용하여 더 간결한 코드를 작성할 수 있다.이번 글에서는 람다 함수의 개념과 사용법을 살펴보고,백준 1181번 문제(단어 정렬) 를 해결하면서 실전에서 활용하는 방법을 알아본다. 1. Dart에서 람다 함수(Lambda)란? 람다 함수는 익명 함수(Anonymous Function)의 간단한 표현 방식이다. 📌 람다 함수의 문법(매개변수) ⇒ 단 하나의 실행 코드; 중괄호 {} 없이 ⇒(화살표) 기호를 사용하여 표현할 수 있다.매개변수는 있을 수도 있고 없을 수도 있다.한 줄 코드만 사용할 수 있다.📌 익명 함수와 람다 함수 비교void main() { final numbers = [10, 2, 5, 0.5]; // 람다 함수 사용 f..

[Dart] for, while 반복문 (with 백준 2446, 2522)

Dart에서 for문과 while문은 코드를 반복 실행할 때 사용된다.이번 글에서는 기본적인 for문, while문, do-while문을 배우고,이를 활용해 백준 문제(2446번, 2522번)를 Dart로 해결해본다. 🚀 1. Dart의 for문 사용법 📌 기본 for문 for 문은 반복 횟수가 정해져 있을 때 사용한다.void main() { String message = 'Dart is fun'; String chgUpper = ""; // 문자열 길이만큼 반복하며 대문자로 변환 for (var i = 0; i  📌 for-in 반복문 for-in 문은 리스트(List) 또는 집합(Set) 같은 Iterable 객체를 반복할 때 사용한다.void main() { List candidat..

[파이썬] 백준 24052 알고리즘 수업 삽입 정렬 2

이번 글에서는 삽입 정렬(Insertion Sort) 알고리즘을 학습하고,이를 활용하여 백준 24052번 문제를 Python으로 해결해본다. 🚀 1. 삽입 정렬 (Insertion Sort) 란? 삽입 정렬은 배열을 앞에서부터 차례대로 정렬된 부분과 비교하며 자신의 위치를 찾아 삽입하는 정렬 알고리즘이다. 🔹 정렬 과정:배열의 두 번째 요소부터 시작하여 왼쪽의 정렬된 부분과 비교적절한 위치를 찾아 삽입모든 요소가 정렬될 때까지 반복 🔹 시간 복잡도:최선 (O(n)): 이미 정렬된 배열일 경우최악 (O(n²)): 역순 정렬된 배열일 경우2. 백준 24052번 문제 설명 🔗 문제 링크: 백준 24052번 - 알고리즘 수업: 삽입 정렬 2📌 문제 요구사항N: 배열 A의 크기 (5 ≤ N ≤ 10,00..

[파이썬] 백준 24051 알고리즘 수업 삽입 정렬 1

이번 글에서는 삽입 정렬(Insertion Sort) 알고리즘을 배우고,이를 활용하여 백준 24051번 문제를 Python으로 해결해본다. 🚀 1. 삽입 정렬(Insertion Sort) 이란? 삽입 정렬은 배열의 모든 요소를 앞에서부터 차례대로 이미 정렬된 부분과 비교하여 자신의 위치를 찾아 삽입하는 정렬 알고리즘이다. 🔹 삽입 정렬의 특징 • 선택 정렬(Selection Sort), **버블 정렬(Bubble Sort)**보다 빠르고 안정적인 정렬 알고리즘 • 최선의 경우 O(n), 최악의 경우 O(n²) • 데이터가 거의 정렬되어 있을 경우 매우 효율적 🔹 삽입 정렬 과정예제 배열: [4, 5, 1, 3, 2] 1️⃣ 1을 정렬된 부분과 비교하여 삽입[4, 5, 1, 3, 2] → 1을 0..

[파이썬] 백준 23969 알고리즘 수업 버블 정렬 2

이번 글에서는 버블 정렬(Bubble Sort) 알고리즘을 학습하고,이를 활용하여 백준 23969번 문제를 Python으로 해결하는 방법을 살펴본다. 🚀 1. 버블 정렬(Bubble Sort) 이란? 버블 정렬은 서로 인접한 두 개의 값을 비교하여 정렬하는 알고리즘이다.큰 값이 오른쪽으로 이동하며 거품(Bubble)처럼 밀려나는 과정에서 이름이 유래되었다. 🔹 버블 정렬의 특징시간 복잡도: 최선 O(n), 평균·최악 O(n²)장점: 구현이 단순단점: 효율이 낮아 큰 데이터 정렬에는 적합하지 않음🔹 버블 정렬 과정예제 배열: [7, 2, 0, 1, 5, 6, 4] 1️⃣ 첫 번째 패스 (가장 큰 값이 끝으로 이동)[7, 2, 0, 1, 5, 6, 4] → 7과 2 비교 → swap[2, 7, 0,..

[파이썬] 백준 23968 알고리즘 수업 버블 정렬 1

이번 글에서는 버블 정렬(Bubble Sort) 알고리즘을 학습하고,이를 활용하여 백준 23968번 문제를 Python으로 해결하는 방법을 살펴본다. 🚀 1. 버블 정렬(Bubble Sort)이란? 📌 개념 버블 정렬은 서로 인접한 두 개의 값을 비교하여 정렬하는 방식이다.정렬이 완료될 때까지 이 과정을 반복하여 배열을 정렬한다. 🔹 버블 정렬의 특징시간 복잡도: 최선 O(n), 평균·최악 O(n²)장점: 코드가 단순하여 구현이 쉬움단점: 성능이 낮아 큰 데이터 정렬에는 부적합🔹 정렬 방식오름차순 정렬: a > b → swap(교환)내림차순 정렬: a 2. 버블 정렬 예제 (오름차순 정렬) 다음과 같은 리스트가 있다고 가정해본다.A = [4, 6, 5, 1, 3, 2] 이 리스트를 버블 정렬하면 ..

[파이썬] 백준 23899 알고리즘 수업 선택 정렬 5

✅ 백준 문제 링크: 백준 23899번 - 선택 정렬 51. 선택 정렬(Selection Sort) 알고리즘 선택 정렬은 리스트에서 최대값을 찾아 맨 뒤로 보내는 방식으로 정렬하는 알고리즘이다. ✔ 선택 정렬 과정주어진 리스트에서 최대값을 찾는다.해당 값을 맨 뒤에 위치한 값과 교환(swap)한다.위 과정을 반복하여 리스트를 정렬한다.다음은 예제 배열 [3, 1, 2, 5, 4]을 선택 정렬로 정렬하는 과정이다.[3, 1, 2, 5, 4] → 최대값 5, 4번 인덱스와 swap [3, 1, 2, 4, 5] → 최대값 4, 3번 인덱스에 있으므로 pass [3, 1, 2, 4, 5] → 최대값 3, 2번 인덱스와 swap [2, 1, 3, 4, 5] → 최대값 2, 1번 인덱스와 swap [1, 2..

[파이썬] 백준 23881 알고리즘 수업 선택 정렬1

이번 글에서는 선택 정렬(Selection Sort) 알고리즘을 학습하고,이를 활용하여 백준 23881번 문제를 Python으로 해결해 본다. 🚀 1. 선택 정렬(Selection Sort)이란? 📌 개념 선택 정렬은 배열에서 최소값(또는 최대값)을 찾아 정렬하는 방식이다.정렬이 완료될 때까지 이 과정을 반복하여 배열을 정렬한다. 🔹 선택 정렬의 특징 • 시간 복잡도: O(n²) • 장점: 코드가 단순하여 구현이 쉬움 • 단점: 성능이 낮아 큰 데이터 정렬에는 부적합 🔹 정렬 방식 • 오름차순 정렬: 최소값을 찾아 맨 앞과 교환 • 내림차순 정렬: 최대값을 찾아 맨 뒤와 교환 2. 선택 정렬 예제 (오름차순 정렬) 다음과 같은 리스트가 있다고 보자.A = [3, 1, 2, 5, 4] 이 리스트를 ..

[파이썬] 백준 1676 팩토리얼 0의 개수 (factorial n!)

✅ 백준 문제 링크: 백준 1676번 - 팩토리얼 0의 개수1. 팩토리얼(Factorial)이란? 팩토리얼은 그 수보다 작거나 같은 모든 양의 정수를 곱한 값이다.• 팩토리얼을 나타내는 기호는 느낌표(!) 이다.• 예를 들어, 5! = 1 × 2 × 3 × 4 × 5 = 120 이다.📌 팩토리얼 예시0! = 11! = 12! = 2 × 1 = 23! = 3 × 2 × 1 = 64! = 4 × 3 × 2 × 1 = 245! = 5 × 4 × 3 × 2 × 1 = 120 2. 파이썬에서 팩토리얼 함수 사용하기 파이썬에서는 math 모듈을 사용하여 팩토리얼을 쉽게 계산할 수 있다. ✔ math.factorial() 함수import mathn = 5result = math.factorial(n)print(re..

[파이썬] 백준 6603 로또 (조합 combinations)

✅ 백준 문제 링크: 백준 6603번 - 로또1. 문제 설명 독일의 로또는 6개의 숫자를 선택하는 방식이다.주어진 K개의 숫자 중에서 6개를 고르는 모든 조합을 출력하는 문제이다.입력의 마지막 줄에는 0이 주어지며, 이를 입력의 종료 조건으로 사용한다.각 테스트 케이스는 사전순(오름차순)으로 출력해야 한다.2. 조합(Combination)이란? 조합이란, 주어진 n개의 원소 중에서 r개를 선택하는 경우의 수를 의미한다.순서가 중요하지 않으며, 파이썬에서는 itertools.combinations() 함수를 사용하면 쉽게 구현할 수 있다. 📌 조합 예제from itertools import combinationsnumbers = [1, 2, 3, 4]combi = list(combinations(numb..