재귀 단계 (acmicpc.net) 재귀함수를 다뤄 봅시다. 재귀 단계 피보나치 수 역시 단순 for문으로도 구할 수 있지만, 학습을 위해 재귀를 써 봅시다. www.acmicpc.net ■ 백준 27433 팩토리얼 2_브론즈 5 - 팩토리얼은 단순 for문으로도 구할 수 있지만, 학습을 위해 재귀를 써 봅시다. def factorial(n): if n > 1: return n * factorial(n-1) else: return 1 print(factorial(int(input()))) ■ 백준 10870 피보나치 수 5_브론즈 2 - 피보나치 수 역시 단순 for문으로도 구할 수 있지만, 학습을 위해 재귀를 써 봅시다. def fibonacci(n): if n
■ 백준 1037 약수_브론즈 1 - 1과 N 빼고 다 주어졌을 때 N을 찾는 문제 n = int(input()) n_li = sorted(list(map(int, input().split()))) print(n_li[0]*n_li[-1]) ■ 백준 25192 인사성 밝은 곰곰이_실버 4 - 👋🐻 # [Psuedo code] # 엔터를 받고 난 뒤에 이름들은 곰곰티콘을 받음 # 엔터를 받을 때 새로운 딕셔너리 생성? # import sys # gomgom = {} # for i in range(int(input())): # name = sys.stdin.readline().rstrip() # if name in gomgom: # if name != "ENTER" and gomgom['ENTER'] < 2..
스택, 큐, 덱 단계 (acmicpc.net) 스택, 큐, 덱 자료구조를 사용하여 문제를 해결해 봅시다. 스택, 큐, 덱 단계 주어진 문자열이 올바른 괄호열인지 판단하는 문제 www.acmicpc.net ■ 백준 28278 스택 2_실버 4 - 스택의 개념을 익히고 실습하는 문제 # import sys # stk = [] # for _ in range(int(input())): # m = list(map(int, sys.stdin.readline().split())) # if len(m) == 1: # if m[0] == 2: # print(stk.pop() if stk != [] else -1) # elif m[0] == 3: # print(len(stk)) # elif m[0] == 4: # prin..
배열의 원소를 순서대로 나열하는 알고리즘을 배워 봅시다. 정렬 단계 (acmicpc.net) 정렬 단계 시간 복잡도가 O(nlogn)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 병합 정렬, 힙 정렬 등이 있지만, 어려운 알고리즘이므로 지금은 언어에 내장된 정렬 함수를 쓰는 것을 추천드립니다. www.acmicpc.net ■ 백준 2750 수 정렬하기_브론즈 2 - 시간 복잡도가 O(n²)인 정렬 알고리즘으로 풀 수 있습니다. 예를 들면 삽입 정렬, 거품 정렬 등이 있습니다. import sys arr = [] idx = 0 for _ in range(int(input())): n = int(sys.stdin.readline()) for i in range(len(arr)): if n > arr[i]..
#4 정렬 알고리즘 https://youtu.be/KGyK-pNvWos?si=91JdaPGhICvfiJb5 ■ 정렬? - 데이터를 특정한 기준에 따라 순서대로 나열 - 일반적으로 문제 상황에 따라서 적절한 정렬 알고리즘이 공식처럼 사용 데이터의 개수가 적을 때 데이터가 많지만 특정 범위로 한정되어 있을 때 이미 데이터가 정렬되어 있는 경우 ... ■ 선택 정렬 - 동작 원리 및 설명 미처리 데이터 중 가장 작은 데이터를 선택, 맨 앞에 있는 데이터와 바꾸는 것을 반복 미처리 데이터가 하나 남을 경우 처리하지 않아도 됨 # 처리해도 자기 자신의 위치와 같기 때문 - 동작 과정 1) 탐색 범위는 반복 시 줄어듦 2) 매번 가장 작은 데이터를 찾기 위해 탐색 범위만큼 데이터를 확인 3) 매번 선형 탐색을 수행..
브루트 포스 단계 (acmicpc.net) 가장 간단한 알고리즘인, 모든 경우의 수를 검사하는 브루트 포스 알고리즘을 배워 봅시다. 브루트 포스 단계 한때는 이 문제가 "기본 수학 1" 단계에 있었지만, 사실 브루트 포스로 푸는 게 더 쉽습니다. www.acmicpc.net ■ 백준 2798 블랙잭_브론즈 2 (복습) # def combination(arr, r): # arr = sorted(arr) # # def generate(chosen): # global max, m # if len(chosen) == r: # if max < sum(chosen)