본문 바로가기
반응형

Algorithm/Note10

[알고리즘] SWEA 기본 입출력 템플릿 - JAVA (Scanner) SW Expert Academy(SWEA) 문제는 입출력이 필요합니다.보통 테스트케이스가 있고, 출력 형태가 정해져 있습니다.SWEA 기본 템플릿import java.util.Scanner;class Solution { public static void main(String[] args) throws Exception { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int tc = 1; tc SWEA의 출력 형태#1 정답#2 정답#3 정답 2026. 2. 15.
[알고리즘] 부분집합 구현 (JAVA) - 비트마스크 vs 재귀 부분집합N개의 원소가 있을 때 각 원소를 넣거나 / 안 넣거나 (2가지 선택)👉 경우의 수는 2ⁿ1. 비트마스크for (int i = 0; i 1 (i & (1 1 AND연산은 둘다 1이면 12. 재귀static void powerset(int idx) { if (idx == N) { for (int i = 0; i 원소마다 넣는다 / 안 넣는다로 나뉘는 이진 트리 구조깊이는 N, 리프 노드 개수는 2ⁿ비트마스크는 빠르고 코드가 짧다는 장점이 있고,재귀는 조건 추가가 쉽다는 장점이 있다. 2026. 2. 15.
[알고리즘] 버블 정렬과 선택 정렬 1. 버블 정렬 (Bubble Sort)개념인접한 두 값을 비교하면서 큰 값을 뒤로 밀어내는 방식한 사이클 끝나면 가장 큰 값이 맨 뒤에 픽스됨시간 복잡도O(N²)동작 방식예시: [5, 3, 4, 1] 1회전5, 3 비교 → 교환5, 4 비교 → 교환5, 1 비교 → 교환결과: [3, 4, 1, 5] → 5 맨 뒤에 고정 2회전3, 4 비교4, 1 비교 → 교환결과: [3, 1, 4, 5] → 4 고정 이처럼 사이클 한 번 끝날 때마다 가장 큰 값이 뒤에서부터 하나씩 확정된다.Java 구현for (int i = 0; i arr[j + 1]) { int tmp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = tmp;.. 2026. 2. 8.
[알고리즘] 코딩테스트에 자주 사용되는 Python 라이브러리 1. 내장 함수입출력, 정렬, 합계 계산 등 기본 기능# 기본 입출력n = int(input())arr = list(map(int, input().split()))# 정렬arr.sort() # 오름차순 정렬arr.sort(reverse=True) # 내림차순 정렬# 기타 자주 사용되는 함수print(sum(arr)) # 합계print(max(arr), min(arr)) # 최댓값, 최솟값 2. itertools반복되는 형태의 데이터를 처리순열, 조합from itertools import permutations, combinationsdata = [1, 2, 3]print(list(permutations(data, 2))) # 순열# [(1, 2), (1, .. 2025. 10. 19.
[알고리즘] 코테를 위한 알고리즘 성능 분석 정리 알고리즘의 복잡도 시간 복잡도 분석 : 수행 시간 분석공간 복잡도 분석 : 수행 시 필요로 하는 메모리 공간 분석 시간 복잡도빅오 표기법 : 가장 빠르게 증가하는 항만 고려하는 표기법복잡도예시O(1)배열 인덱스 접근O(logN)이진 탐색O(N)단순 반복문O(NlogN)병합정렬, 퀵정렬O(N²)중첩 반복문O(N³)삼중 반복문O(2ᴺ)부분집합 탐색O(N!)순열 탐색 코테에서의 활용문제를 풀 때는 시간제한을 먼저 확인해야 합니다.시간제한이 1초일 경우, 다음과 같은 기준을 세울 수 있습니다.N의 범위가능한 복잡도500O(N³)2,000O(N²)100,000O(NlogN) 10,000,000O(N) 💡 문제를 풀 때 "이 입력 크기라면 어떤 알고리즘을 써야 할까"를 생각하는 습관이 중요 2025. 10. 19.
[알고리즘] 알고리즘 기말 평가 회고 및 풀이 정리 (JAVA 풀이 5문제) ☑️ 1번 문제 - 소수 찾기 (백트래킹, 순열)🔍 문제 요약주어진 숫자 n 이하의 모든 소수를 찾아 개수를 구하는 문제🧩 내 풀이import java.util.*;class Solution { Set primeSet; // 소수를 저장할 Set (중복 제거) public int solution(String numbers) { primeSet = new HashSet(); boolean[] visited = new boolean[numbers.length()]; // 백트래킹 시작 backtrack(numbers, visited, ""); // 찾은 소수의 개수 반환 return primeSet.siz.. 2025. 7. 5.
반응형