문제 요약알고리즘 분류: Tree, 재귀호출난이도: Medium문제내용:nums배열, 리스트를 주어 줬을때 아래와 같은 트리를 완성 하여라nums에서 가장 큰 값을 루트 노드로 만듭니다.가장 큰 값의 왼쪽 부분 배열로 왼쪽 서브트리를 재귀적으로 만듭니다.가장 큰 값의 오른쪽 부분 배열로 오른쪽 서브트리를 재귀적으로 만듭니다.사이트 주소:https://leetcode.com/problems/maximum-binary-tree/description/문제풀이 이번 문제는 이진 트리를 완성시켜야 되고 완성시키기 위해서 재귀호출을 사용 해서 풀것이다. 트리에 대한 자세한 글은 아래 글에서 확인 하여라https://jih3508.tistory.com/87 [알고리즘 이론] 트리(Tree)이론 이번에 볼 자료구조는..
문제 요약알고리즘 분류: 재귀호출난이도: Medium문제내용:문자열 길이 n이 있다.문자열에는 0과 1만 올수 있다.0뒤에는 1만 올 수 있다.사이트 주소: https://leetcode.com/problems/generate-binary-strings-without-adjacent-zeros/description/문제풀이 이번 문제는 간단한 재귀호춣 구현이다. 구현은 아래와 같이 하면된다.끝에 숫자가 1일때만 0추가하고 재귀호출한다.뒤에 1을 추가하고 재귀호출한다.문자열길이가 n일때 리스트에 추가한다. 재귀호출 기본적인 문제라서 문제 푸는데는 어렵지 않다. 위에 처럼 구현 하면 시간 복잡도는 O(2^n)만큼 나온다.CodePythonclass Solution: def validStrings(sel..
문제 요약 알고리즘 분류: 분할정복, 재귀호출 난이도: Silver2 문제내용: 종이안에 정사각형 흰색 영역 개수와 파란색 영역을 구해라. 사이트: https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 문제풀이 이번에는 문제 유형은 완전탐색 방법에서 분할 정복으로 풀어야 될 문제이다. 어떻게 분할해서 풀면 된다. 나누는 방법은 간단하다. 문제에서는 주어진 가로세로 길이가 2^N이기 때문에 가로세로 각각 2로 나누어서 탐색 ..
문제 요약 알고리즘 분류: 수학, 재귀호출, 분할정복 난이도: Gold2 문제내용: 행렬의 N 제곱을 구한뒤 각 원소마다 1,000을 나눈 나머지를 구해라. 사이트 : https://www.acmicpc.net/problem/11401 10830번: 행렬 제곱 크기가 N*N인 행렬 A가 주어진다. 이때, A의 B제곱을 구하는 프로그램을 작성하시오. 수가 매우 커질 수 있으니, A^B의 각 원소를 1,000으로 나눈 나머지를 출력한다. www.acmicpc.net 문제풀이 이번 문제 내용는 2가지만 알면 쉽게 풀수 있다고 생각한다. 첫번째는 행렬 제곱을 처리 하는 방법이다. 행렬 제곱은 행렬 곱셈만 구현 하면 되기 때문에 밑에 사이트에 문제 풀어보거나 복습하면 풀수가 있다. https://jih3508.t..
문제 요악 알고리즘 분류: 동적 계획법, 재귀호출 난이도: Silver2 문제 요약 문제 있는 코드를 동적계획법으로 구현해라 사이트 주소: https://www.acmicpc.net/problem/9184 24416번: 알고리즘 수업 - 피보나치 수 1 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍 www.acmicpc.net 문제 풀이 동적 계획법 관련 내용은 아래 사이트에 참조 하면된다. https://namu.wiki/w/%EB%8F%99%EC%A0%81%20%EA%B3%84%ED%9A%8D%EB%B2%95 동적 계획법 - 나무위키 동적 계획법의 개념과 구현에 대해..
문제 요악 알고리즘 분류: 동적 계획법, 재귀호출, 수학 난이도: Bronz1 문제 요약 피보나치 수열 N을 주어 졌을때 재귀호출 방식과 동적 계획법 몇번 실행한지 횟수를 각각 구하면된다. 사이트 주소: https://www.acmicpc.net/problem/24416 24416번: 알고리즘 수업 - 피보나치 수 1 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍 www.acmicpc.net 문제 풀이 동적 계획법 관련 내용은 아래 사이트에 참조 하면된다. https://namu.wiki/w/%EB%8F%99%EC%A0%81%20%EA%B3%84%ED%9A%8D%EB%B..
문제 요약 알고리즘 분류: 백트래킹, 재귀호출 난이도: Silver3 문제내용: N, M 가 주어 졌을때 1 ~ N수 에서 M개를 뽑을때 중복된 수열 없이 나올수 있는 수를 모두 출력해라. 사이트 주소: https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 문제풀이 https://jih3508.tistory.com/28 [BAEJOON] 15649 N과 M (1) 문제 요약 알고리즘 분류: 백트래킹 난이도: Silver3 문제내용: N, M 가 주..
문제 요약 알고리즘 분류: 재귀호출, 분할정복 난이도: Silver1 문제내용: A 를 B 번 곱해서 C로 나눠서 출력한다. 사이트 주소: https://www.acmicpc.net/problem/1629 1629번: 곱셈 첫째 줄에 A, B, C가 빈 칸을 사이에 두고 순서대로 주어진다. A, B, C는 모두 2,147,483,647 이하의 자연수이다. www.acmicpc.net 문제풀이 위 문제는 아래처럼 pow 함수 사용하거나 제곱으로 연산하거나 for문으로 사용하면 시간 초과가 나올것이다. A, B, C = map(int, input().split()) # 그냥 제곱 연산으로 사용할 경우 result = A ** B % C # for 문으로 사용할 경우 result = 1 for i in ran..
- Total
- Today
- Yesterday
- Greedy
- 동적계획법
- spring-boot
- 자바
- 누적합
- 수학
- 이론
- BaekJoon
- 백준
- 백트레킹
- java
- 조합
- 알고리즘
- level2
- 넓이 우선 탐색
- 구현
- 동적 계획법
- Programmerse
- 배열
- 그리디
- JSCODE
- 문자열
- 그래프
- 재귀호출
- 파이썬
- DP
- LeetCode
- Python
- DFS
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |