재귀함수 BOJ 10870 문제피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다.이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 된다.n=17일

10개 중에서 5개의 조합을 구하는 알고리즘 -방법 1. for 문을 사용해구함 -> 5개의 for문이 필요함. 방법 2. 재귀 함수를 사용한다.
조합 알고리즘 복습
정렬알고리즘 -> 브루트, 그리디, dp알고리즘 알고리즘 분류 접근 방식에 가까운 알고리즘 브루트 포스 그리디 DP 방법론에 가까운 알고리즘수학 알고리즘 소인수분해 에라토스네테스의 체 알고리즘 유클리드 알고리즘 기본 알고리즘 재귀 알고리즘 조합 알고리즘순열 알고리즘 부

알고리즘: 누적합 for문 M번안에 N번 반복해야하므로 시간 초과가 난다. -> 누적합 알고리즘을 이용하자.
재귀함수란? 함수의 일종이고, 함수 내에서 자기 자신을 호출하는 함수이다. 1. 1부터 n까지 더하는 함수 종료 조건이 필수임. -> 재귀함수, 자기자신만 호출하는 함수만 있으면 영원히 끝나지 않아서 base case가 필요함. 종료 조건은 가장 작은 값으로 마지막
조합으로 해서 합이 M이 되는 개수 구하는 방법 -> 내 풀이 백트래킹, dfs로 선택 o,x 로 하기 재귀함수로 해당 원소를 선택하는지, 안하는지를 구현한다.
DP 알고리즘 학습 2579. 계단오르기 핵심조건 마지막 계단 밟아야함 1,2칸 오를 수 있음 연속 3칸 x 최대 점수를 얻는 경로를 구해야하고 최대 점수 출력해야함. 접근 방식 상태 정의 dp[i] = i번째 계단을 밟았을때의 최대 점수 점화식 설계 i번째 밟는
https://codingdodo.tistory.com/94?utm_source=chatgpt.com -> 백준 코딩 초보 문제집을 참고하였다. 브론즈 11720. 숫자의 합 -> input()으로 받았을때 개행 문자를 제거하기 위해 .strip() 써야함. 9046. 복호화 10798. 단어장 => 문제: 리스트에 빈 문자열이 있을때 에러 115...

1. 백준 2606 바이러스 > 첫번째 아이디어 인접행렬로 자료구조를 나타내서 dfs로 호출한 개수를 센다. > 두번째 아이디어 union, find 를 사용해 같은 집합인 개수 세기 2. 프로그래머스 lv2. 올바른 괄호 > 아이디어 스택을 활용해서 '('가

그리디, 분할정복

백준 1717 집합의 표현 > 아이디어 union -find 알고리즘 사용하기 경로 압축 -> union: 두개의 노드의 부모노드를 union시켜야함 ()

아이디어 ArrayList로 x,y 좌표를 받고, Collections.sort 사용하기

아이디어 union-find 알고리즘으로 root의 개수를 세자

아이디어 입력을 받는게 은근 쉽지 않네 공백없이 숫자 받기 -> ? 그냥 String으로 받아서 charAt()-'0'으로 받기 scanner로 입력을 받을때, scan.nextInt()로 받으면 '\\n'의 개행문자가 남아 입력부분이 잘 처리가 안되었음. \-> sc

백준 16234 인구이동

\*\*아이디어 처음에 bfs로 했을때 안풀림!!! 인구 이동이 발생하는 동안 while문으로 접근해서 이동이 발생하면, day추가하는 방식으로 함.
8일차를 보니 벌써 2주나 쉬었다. 그동안 몸살이나, 스터디 활동이 원활하지 않아, 나태해졌던 것 같다! 다시 한번 시작하자. 아이디어 처음에는 Stack으로 구현하였으나, 맨 아래로 넣는 작업에서 FIFO인 Queue로 구현하는것이 맞음. 맨 앞에서 빼기: poll

1. 백준 9012 괄호 > 아이디어 입력받는문제: scan.next()로 String 한줄을 입력받고, 문자열 길이만큼 순회하면서 char ch = str.charAt(j)를 입력받는다. flage로 한번만 출력되게 한다.( ')'가 들어왔는데 비어있으면, no표시만
아 내용은 코테용 정렬 정리본입니다. Integer\[] arr1 = {-5, 2, -8, 1, 9};Arrays.sort(arr1, (a,b)-> Math.abs(a)- Math.abs(b)); Arrays.sort()\- 기본 타입(int\[]): O(n log

백준

1. 백준 2579 계단오르기 > 아이디어 dp[n]까지 점화식 만들고, dp[n]출력 점화식: Bottom-Up DP (내 방식 개선) 일반적이고 이해하기 쉽다. 단점은 배열 사용으로 메모리가 O(n) Top-Down DP (재귀 + 메모이제이션) 2. 백

아이디어 처음에 이분탐색인지 모르겠음. 의사코드

아이디어 간선을 저장하는 자료구조는 ArrayList\[] list를 만들고, Edge class의 객체를 생성한다. Edge 클래스는 도착점과 가중치가 저장된다. dist\[] 배열로 최소값 저장

아이디어 입력 : 테스트 케이스 T만큼 반복하고, n: 컴퓨터 개수 / d: 간선개수 / c: 시작 번호 자료 구조 ArrayList\[] list로 각 1부터..n까지의 list 초기화 시켜야함 ! 간선 입력 dist거리 선언하고, max_value로 초기화 ->di

아이디어다솜밖에 없는 경우 출력 다솜 제외하고, 정렬한후 마지막 인덱스부터 비교하면서, 1표씩 가져오기 (다솜이가 많을때 break문으로 빠져나옴)

중복 없는 순열 index를 기준으로 인덱스가 m이 되는 순간 출력한다. 선택할 배열에 숫자를 넣으면서 index+1을 담은 변수로 재귀 호출을 한 뒤, boolean 배열을 다시 false로 백트래킹한다.

소요시간 : 90분.. 아이디어 핵심 : 지훈이가 불보다 먼저 움직여서 가장 자리로 탈출 가능한가? 문제 분류a. 최단 거리 / 시간 -> bfs 알고리즘 b. 불과 사람이 동시에 이동 -> 멀티 bfs알고리즘 설계

👿 핵심 파악 \- 한줄 요약: 원형으로 앉은 N명에서 K번째마다 제거해 순서 구하기 \- 입력: N(사람 수), K(제거 간격) \- 출력: 제거된 순서 <a, b, c, ...> 형식🧻 문제 분류 알고리즘: 구현, 큐 회전 자료구조: Queu

백준 1316 그룹단위체커