SlideShare a Scribd company logo
1 of 47
Download to read offline
서울시립대 알고리즘 소모임
완전 탐색
1학기 2주차
서울시립대 알고리즘 소모임
강의자 소개
2020 AL林 정기 스터디 2
이름 최문기
소속 서울시립대 컴퓨터과학부(16학번)
핸들 iknoom1107(BOJ) IKnoom(Codeforces) IKnoom(AtCoder)
ICPC 팀 (팀명 미정)
- 김정현, 오규민, 최문기
스터디 공지(~3월 30일)
2020 AL林 정기 스터디 3
문제 풀이 스터디
그룹을 나누어 정규 세미나의 연습 문제를 함께 풀어보고 풀이를 공유
https://www.notion.so/AL-413334b2632447789e58c1daa64fa009
대회 스터디
ACM-ICPC, SCPC와 같은 알고리즘 대회를 준비
https://www.notion.so/AL-2364ec7bc77a49ffbd83abeaf484e7c2
前 몇가지 선행 지식
2020 AL林 정기 스터디 4
파이썬 프로그래밍 : 반복문, 조건문, 배열
수학 : 순열, 조합, 수열의 일반항과 점화식
今 오늘 할 것
2020 AL林 정기 스터디 5
• 시간복잡도, 공간복잡도
• 알고리즘을 분석하여 더 효율적인 알고리즘이 무엇인지 알기
• 알고리즘이 한정된 자원 내에서 실행 가능한지 예측하기
• 완전 탐색
• 완전 탐색과 효율적인 문제 해결 방법 비교해보기
• 다양한 상황에서 어떻게 완전 탐색을 하는지 간단하게 살펴보기
後 세미나를 듣고 나서
2020 AL林 정기 스터디 6
문제를 풀어봅시다. 꼭 풀어봅시다.
발표자가 생각하는 문제를 푸는 능력 : 아이디어, 구현력, 배경지식
2020 AL林 정기 스터디 7
알고리즘의 분석
(시간복잡도, 공간복잡도)
알고리즘 분석의 필요성
2020 AL林 정기 스터디 8
우리는 앞으로 여러 알고리즘을 설계할 것입니다.
여러 알고리즘 중 어떤 알고리즘이 더 좋은 알고리즘일까요?
그리고 한정된 자원 내에서 알고리즘이 수행 가능할까요?
설계
분석
1. 더 좋은 알고리즘
2020 AL林 정기 스터디 9
여러 알고리즘 중 어떤 알고리즘이 더 좋은 알고리즘일까요?
✓ 알고리즘을 평가하는 두가지 기준
1. 알고리즘의 수행 시간
2. 알고리즘의 필요 메모리
알고리즘의 수행 시간
2020 AL林 정기 스터디 10
n = 5
arr = [1, 2, 3, 4, 5]
sum = 0
for i in range(n):
sum = sum + arr[i]
print(sum) # 15
입력의 크기가 n일 때, n번의 연산
알고리즘의 수행 시간
2020 AL林 정기 스터디 11
입력의 크기가 n일 때, n(n–1)/2번의 연산
n = 5
arr = [1, 3, 5, 7, 9]
sum = 0
for i in range(n - 1):
for j in range(i + 1, n):
sum = sum + i * j
print(sum) # 35
알고리즘의 수행 시간
2020 AL林 정기 스터디 12
입력의 크기가 n일 때, n(n+1)(n+2)/6번의 연산
n = 5
arr = [2, 4, 6, 8, 10]
sum = 0
for i in range(n):
for j in range(i, n):
for k in range(i, j + 1):
sum = sum + arr[k]
print(sum) # 210
빅오 표기법(Big-O notation)
2020 AL林 정기 스터디 13
✓ 빅오 표기법(Big-O notation)
- 시간복잡도(문제를 해결하는데 걸리는 시간과 입력의 함수 관계)를 나타내는 방법.
- 𝑂 𝑓(𝑛) 은 최고차항의 차수가 𝑓(𝑛)과 일치하거나 더 작은 함수의 집합을 나타낸다.
“수행시간의 상한”
“아무리 오래걸린다 하더라도”
빅오 표기법(Big-O notation)
2020 AL林 정기 스터디 14
𝑓 𝑛 = 𝑛 = 𝑂 𝑛
𝑓 𝑛 =
𝑛 𝑛−1
2
= 𝑂 𝑛2
𝑓 𝑛 =
𝑛 𝑛+1 (𝑛+2)
6
= 𝑂 𝑛3
빅오 표기법(Big-O notation)
2020 AL林 정기 스터디 15
𝑓 𝑛 = 𝑛 + 𝑛 = 𝑂 𝑛
𝑓 𝑛 = 𝑛2
+ 50000 = 𝑂 𝑛2
𝑓 𝑛 = 50000 = 𝑂 1
𝑓 𝑛 = 3𝑛 log 𝑛 + 9 = 𝑂 𝑛 log 𝑛
빅오 표기법(Big-O notation)
2020 AL林 정기 스터디 16
𝑓 𝑛 = 2𝑛
+ 𝑛100
= 𝑂 2𝑛
𝑓 𝑛 = 100 ∗ 2𝑛
+ 3𝑛
= 𝑂 3𝑛
𝑓 𝑛 = 2𝑛! + 2𝑛
= 𝑂 𝑛!
𝑓 𝑛 = 10000 ∗ 𝑛! = 𝑂 𝑛!
빅오 표기법(Big-O notation)
2020 AL林 정기 스터디 17
빅오 표기법은 “상한”을 나타냅니다.
𝑓 𝑛 = 2𝑛 + 3 = 𝑂 𝑛2
-> O
𝑓 𝑛 = 𝑛2
+ 7𝑛 = 𝑂 𝑛 -> X
빅오 표기법(Big-O notation)
2020 AL林 정기 스터디 18
O(1) < O(logn) < O(√n) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!)
알고리즘의 필요 메모리
2020 AL林 정기 스터디 19
공간복잡도(문제를 해결하는데 필요한 메모리와 입력의 함수 관계) 또한
시간복잡도와 동일하게 빅오 표기법으로 나타냅니다.
n = 5
arr = [1, 2, 3, 4, 5]
sum = 0
for i in range(n):
sum = sum + arr[i]
print(sum) # 15
→ 공간복잡도 O(n)
2. 한정된 자원에서 짐작하기
2020 AL林 정기 스터디 20
한정된 자원 내에서 알고리즘이 수행 가능할까요?
시간 제한 – 108 룰
2020 AL林 정기 스터디 21
✓ 108 룰
컴퓨터는 1초에 간단한 동작을 대략 108번 할 수 있다.
* 어림짐작이며 완전히 정확하지는 않습니다.
시간 제한 – 108 룰
2020 AL林 정기 스터디 22
연습해봅시다.
𝑂 𝑛 , 𝑛 ≤ 105 시간제한 1초 : 맞았습니다!
𝑂 𝑛2 , 𝑛 ≤ 105 시간제한 1초 : 시간초과
𝑂 𝑛2 , 𝑛 ≤ 5 × 103 시간제한 1초 : 맞았습니다!
𝑂 𝑛3
, 𝑛 ≤ 5 × 103
시간제한 1초 : 시간초과
시간 제한 – 108 룰
2020 AL林 정기 스터디 23
연습해봅시다.
𝑂 2𝑛
, 𝑛 ≤ 100 시간제한 1초 : 시간초과
𝑂 2𝑛 , 𝑛 ≤ 20 시간제한 1초 : 맞았습니다!
𝑂 𝑛! , 𝑛 ≤ 20 시간제한 1초 : 시간초과
𝑂 𝑛! , 𝑛 ≤ 8 시간제한 1초 : 맞았습니다!
시간 제한 – 108 룰
2020 AL林 정기 스터디 24
N의 크기 시간 제한 시간 복잡도
8 1초 𝑂 𝑁 , 𝑂 𝑁2 , 𝑂 𝑁3 , 𝑂 2𝑁 , 𝑂(𝑁!)
25 1초 𝑂 𝑁 , 𝑂 𝑁2
, 𝑂 𝑁3
, 𝑂 2𝑁
300 1초 𝑂 𝑁 , 𝑂 𝑁2
, 𝑂 𝑁3
5000 1초 𝑂 𝑁 , 𝑂 𝑁2
1000000 1초 𝑂 𝑁
입력의 제한과 시간 제한이 주어지면 허용되는 시간복잡도를 예측할 수 있다.
메모리 제한
2020 AL林 정기 스터디 25
프로그램이 점유하는 메모리는 보통 계산하기 쉽습니다.
예를 들어 C언어에서 int 정수 하나는 4byte → int 106개의 배열은 4MB
따라서 분석하기 쉽기도하고 실제로 문제가 되는 경우도 적은 편입니다.
알고리즘 대회나 온라인 저지에서도 메모리 제한이 넉넉한 편입니다.
(가끔 32MB나 8MB로 적게 주어지기도 합니다.)
더 공부해볼 것
2020 AL林 정기 스터디 26
왜 최악의 경우(빅오 표기법)만 분석하나요?
- 알고리즘의 효율성이 문제가 되는 것은 입력 크기가 충분히 클 때입니다. 입력이 작으면 알고리즘의
효율성에 상관없이 금방 결과를 확인할 수 있습니다. 최악의 경우를 개선하는 것이 알고리즘 문제해
결의 주 관심사입니다.
- 최선의 경우와 평균적 경우를 표현하는 방법도 있습니다.(오메가 표기법, 세타 표기법) 오메가 표기
법은 아예 쓰지 않는다고 보면 되고 세타 표기법은 확률적 알고리즘을 분석할 때 쓰기도 합니다. 하
지만 평균적인 경우라는게 일반적으로 분석이 어렵고 객관적인 평가도 어려워서 분석하지 않는 편입
니다.
더 공부해볼 것
2020 AL林 정기 스터디 27
빅오 표기법(점근 표기법)의 엄밀한 수학적 정의
- https://en.wikipedia.org/wiki/Big_O_notation
- https://m.blog.naver.com/kks227/220769859177
시간복잡도가 애매하면 어떡하죠? ex) O(n2), n < 2만, 시간제한 1초
- 테스트를 해봐야합니다. 백준에 제출하고 기도합시다.
시간복잡도 분석이 이정도로 끝인가요?
- 아닙니다. 알고리즘의 수행시간을 지배하는 것은 반복된 작업입니다. 반복된 작업이 수행될 수 있는 방
법은 반복문 또는 재귀호출이지요. 반복문은 위에서 한 것과 같이 단순한 산술로 끝나지만 재귀호출
은 그렇지 않습니다. 4주차 재귀함수, 5주차 분할정복에서 연습해봅시다.
2020 AL林 정기 스터디 28
완전 탐색
완전 탐색(Brute-force Search)
2020 AL林 정기 스터디 29
답이 될 수 있는 모든 경우의 수를 탐색하는 방법
바로 예시를 봅시다.
[BOJ 3040번] 백설 공주와 일곱 난쟁이
2020 AL林 정기 스터디 30
9개의 정수 중에서 합이 100이 되는 7개의 정수를 구한다.
→ 9개 중에서 2개를 제외했을 때 나머지 정수의 합이 100
→ 2개를 제외하는 모든 경우의 수는 9C2 = 36가지
→ 36가지 경우를 완전 탐색
[BOJ 3040번] 백설 공주와 일곱 난쟁이
2020 AL林 정기 스터디 31
arr = []
sum = 0
for i in range(9):
x = int(input())
sum += x
arr.append(x)
for i in range(9):
for j in range(9):
if i == j:
continue
if sum - arr[i] - arr[j] == 100:
arr[i] = -1
arr[j] = -1
for i in range(9):
if arr[i] != -1:
print(arr[i])
http://boj.kr/e20a7eef8f0241c394e510119e9ec2d9
이것도 완전탐색으로 풀어볼까요?
2020 AL林 정기 스터디 32
[1931번 회의실 배정]
https://www.acmicpc.net/problem/1931
[1912번 연속합]
https://www.acmicpc.net/problem/1912
이것도 완전탐색으로 풀어볼까요?
2020 AL林 정기 스터디 33
[1931번 회의실 배정]
완전 탐색 : O(2n)
그리디 알고리즘 : O(n)
[1912번 연속합]
완전 탐색 : O(n3)
동적 프로그래밍 : O(n)
첫번째 관찰
2020 AL林 정기 스터디 34
완전 탐색은 정답이 되는 경우를 모두 탐색하는 해결방법이다.
그렇기 때문에 설계한 알고리즘이 비효율적일 수도 있으며
다른 알고리즘으로 최적화가 될 수도 있다.
구현할 수 있나요?
2020 AL林 정기 스터디 35
A = {1, 2, 9, 4, 11, 13, 94, 7, 22}에서
1. 크기가 9인 모든 순열 출력하기
2. 크기가 7인 모든 조합 출력하기
3. 모든 부분집합 출력하기
구현할 수 있나요?
2020 AL林 정기 스터디 36
슬라이딩 퍼즐 풀기
구현할 수 있나요?
2020 AL林 정기 스터디 37
스도쿠 풀기
구현할 수 있나요?
2020 AL林 정기 스터디 38
루빅스 큐브 풀기
구현할 수 있나요?
2020 AL林 정기 스터디 39
두번째 관찰
2020 AL林 정기 스터디 40
완전 탐색을 구현하는 것만으로도 그렇게 쉽지 않다.
상황에 따라 완전탐색을 구현하는 방법에 대해서 더 알아야한다.
2020 AL林 정기 스터디 41
정리
정리
2020 AL林 정기 스터디 42
• 알고리즘 분석(시간복잡도, 공간복잡도)
• 알고리즘이 효율적인지 평가하는 두가지 기준은 실행 시간과 메모리이다.
• 단순한 산술로 알고리즘의 시간복잡도를 구해보았다.
• 빅표 표기법(Big-O notation)을 통해서 시간복잡도를 나타내었다.
• 한정된 자원과 입력의 크기를 보고 주어진 알고리즘이 실행가능한지 예측하였다.
정리
2020 AL林 정기 스터디 43
• 완전 탐색
• 완전 탐색은 답이 될 수 있는 모든 경우를 탐색하는 방법이다.
• 완전탐색은 비효율적인 방법일 수도 있다.
• 완전탐색(모든 경우의 수를 탐색한다는 아이디어)을 구현하는 것 만으로도 상당히
어려울 수도 있다. 상황에 따라 구현하는 방법을 더 알아야한다.
정리
2020 AL林 정기 스터디 44
알고리즘을 구현하는 방법
(4주차) 재귀 함수
(6주차, 7주차) 자료구조
(8주차, 9주차) DFS, BFS
효율적인 알고리즘을 설계하는 방법
(3주차) 그리디 알고리즘
(5주차) 분할 정복
(10주차) 동적 프로그래밍
2020 AL林 정기 스터디 45
연습 문제
연습 문제
2020 AL林 정기 스터디 46
완전 탐색
기본 문제
3040 백설 공주와 일곱 난쟁이
19532 수학은 비대면강의입니다
2798 블랙잭
연습 문제
(문제풀이 스터디 발표)
2231 분해합
10448 유레카 이론
1198 삼각형으로 자르기
1254 팰린드롬 만들기
2503 숫자 야구
구현하는 연습을 꼭 합시다.
연습 문제
2020 AL林 정기 스터디 47
완전 탐색
도전 문제
2615 오목
17085 십자가 2개 놓기
1182 부분수열의 합
구현하는 연습을 꼭 합시다.

More Related Content

Similar to 2021 1학기 정기 세미나 2주차

how to calclute time complexity of algortihm
how to calclute time complexity of algortihmhow to calclute time complexity of algortihm
how to calclute time complexity of algortihmSajid Marwat
 
2021 1학기 정기 세미나 3주차
2021 1학기 정기 세미나 3주차2021 1학기 정기 세미나 3주차
2021 1학기 정기 세미나 3주차Moonki Choi
 
Class[1][23ed may] [algorithms]
Class[1][23ed may] [algorithms]Class[1][23ed may] [algorithms]
Class[1][23ed may] [algorithms]Saajid Akram
 
CS8451 - Design and Analysis of Algorithms
CS8451 - Design and Analysis of AlgorithmsCS8451 - Design and Analysis of Algorithms
CS8451 - Design and Analysis of AlgorithmsKrishnan MuthuManickam
 
Simulation-based optimization: Upper Confidence Tree and Direct Policy Search
Simulation-based optimization: Upper Confidence Tree and Direct Policy SearchSimulation-based optimization: Upper Confidence Tree and Direct Policy Search
Simulation-based optimization: Upper Confidence Tree and Direct Policy SearchOlivier Teytaud
 
CS-102 DS-class_01_02 Lectures Data .pdf
CS-102 DS-class_01_02 Lectures Data .pdfCS-102 DS-class_01_02 Lectures Data .pdf
CS-102 DS-class_01_02 Lectures Data .pdfssuser034ce1
 
Parallelising Dynamic Programming
Parallelising Dynamic ProgrammingParallelising Dynamic Programming
Parallelising Dynamic ProgrammingRaphael Reitzig
 
(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...
(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...
(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...Hao Jin
 
Solving Nonograms In Parallel
Solving Nonograms In ParallelSolving Nonograms In Parallel
Solving Nonograms In Parallel家郡 葉
 
An introduction to Competitive Programming
An introduction to Competitive ProgrammingAn introduction to Competitive Programming
An introduction to Competitive ProgrammingGaurav Agarwal
 
2020 겨울방학 정기스터디 2주차
2020 겨울방학 정기스터디 2주차2020 겨울방학 정기스터디 2주차
2020 겨울방학 정기스터디 2주차Moonki Choi
 
Ch24 efficient algorithms
Ch24 efficient algorithmsCh24 efficient algorithms
Ch24 efficient algorithmsrajatmay1992
 
Data_Structure_and_Algorithms_Lecture_1.ppt
Data_Structure_and_Algorithms_Lecture_1.pptData_Structure_and_Algorithms_Lecture_1.ppt
Data_Structure_and_Algorithms_Lecture_1.pptISHANAMRITSRIVASTAVA
 
Lec03 04-time complexity
Lec03 04-time complexityLec03 04-time complexity
Lec03 04-time complexityAbbas Ali
 

Similar to 2021 1학기 정기 세미나 2주차 (20)

how to calclute time complexity of algortihm
how to calclute time complexity of algortihmhow to calclute time complexity of algortihm
how to calclute time complexity of algortihm
 
Time andspacecomplexity
Time andspacecomplexityTime andspacecomplexity
Time andspacecomplexity
 
2021 1학기 정기 세미나 3주차
2021 1학기 정기 세미나 3주차2021 1학기 정기 세미나 3주차
2021 1학기 정기 세미나 3주차
 
Class[1][23ed may] [algorithms]
Class[1][23ed may] [algorithms]Class[1][23ed may] [algorithms]
Class[1][23ed may] [algorithms]
 
CS8451 - Design and Analysis of Algorithms
CS8451 - Design and Analysis of AlgorithmsCS8451 - Design and Analysis of Algorithms
CS8451 - Design and Analysis of Algorithms
 
Daa unit 1
Daa unit 1Daa unit 1
Daa unit 1
 
Simulation-based optimization: Upper Confidence Tree and Direct Policy Search
Simulation-based optimization: Upper Confidence Tree and Direct Policy SearchSimulation-based optimization: Upper Confidence Tree and Direct Policy Search
Simulation-based optimization: Upper Confidence Tree and Direct Policy Search
 
CS-102 DS-class_01_02 Lectures Data .pdf
CS-102 DS-class_01_02 Lectures Data .pdfCS-102 DS-class_01_02 Lectures Data .pdf
CS-102 DS-class_01_02 Lectures Data .pdf
 
Parallelising Dynamic Programming
Parallelising Dynamic ProgrammingParallelising Dynamic Programming
Parallelising Dynamic Programming
 
(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...
(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...
(SAC2020 SVT-2) Constrained Detecting Arrays for Fault Localization in Combin...
 
2021 04-01-dalle
2021 04-01-dalle2021 04-01-dalle
2021 04-01-dalle
 
Solving Nonograms In Parallel
Solving Nonograms In ParallelSolving Nonograms In Parallel
Solving Nonograms In Parallel
 
Time and Space Complexity
Time and Space ComplexityTime and Space Complexity
Time and Space Complexity
 
An introduction to Competitive Programming
An introduction to Competitive ProgrammingAn introduction to Competitive Programming
An introduction to Competitive Programming
 
2020 겨울방학 정기스터디 2주차
2020 겨울방학 정기스터디 2주차2020 겨울방학 정기스터디 2주차
2020 겨울방학 정기스터디 2주차
 
Ch24 efficient algorithms
Ch24 efficient algorithmsCh24 efficient algorithms
Ch24 efficient algorithms
 
Data_Structure_and_Algorithms_Lecture_1.ppt
Data_Structure_and_Algorithms_Lecture_1.pptData_Structure_and_Algorithms_Lecture_1.ppt
Data_Structure_and_Algorithms_Lecture_1.ppt
 
Lec03 04-time complexity
Lec03 04-time complexityLec03 04-time complexity
Lec03 04-time complexity
 
Code Tuning
Code TuningCode Tuning
Code Tuning
 
Test Automation Day 2018
Test Automation Day 2018Test Automation Day 2018
Test Automation Day 2018
 

More from Moonki Choi

2021 2학기 정기 세미나 5주차
2021 2학기 정기 세미나 5주차2021 2학기 정기 세미나 5주차
2021 2학기 정기 세미나 5주차Moonki Choi
 
2021 2학기 정기 세미나 4주차
2021 2학기 정기 세미나 4주차2021 2학기 정기 세미나 4주차
2021 2학기 정기 세미나 4주차Moonki Choi
 
2021 여름방학 정기 세미나 3주차
2021 여름방학 정기 세미나 3주차2021 여름방학 정기 세미나 3주차
2021 여름방학 정기 세미나 3주차Moonki Choi
 
2021 여름방학 정기 세미나 1주차
2021 여름방학 정기 세미나 1주차2021 여름방학 정기 세미나 1주차
2021 여름방학 정기 세미나 1주차Moonki Choi
 
2021 알림 오세요
2021 알림 오세요2021 알림 오세요
2021 알림 오세요Moonki Choi
 
2021 1학기 정기 세미나 6주차
2021 1학기 정기 세미나 6주차2021 1학기 정기 세미나 6주차
2021 1학기 정기 세미나 6주차Moonki Choi
 
2020 여름방학 정기스터디 6주차
2020 여름방학 정기스터디 6주차2020 여름방학 정기스터디 6주차
2020 여름방학 정기스터디 6주차Moonki Choi
 
2020 여름방학 정기스터디 5주차
2020 여름방학 정기스터디 5주차2020 여름방학 정기스터디 5주차
2020 여름방학 정기스터디 5주차Moonki Choi
 
2020 2학기 정기스터디 8주차
2020 2학기 정기스터디 8주차2020 2학기 정기스터디 8주차
2020 2학기 정기스터디 8주차Moonki Choi
 
2020 2학기 정기스터디 2주차
2020 2학기 정기스터디 2주차2020 2학기 정기스터디 2주차
2020 2학기 정기스터디 2주차Moonki Choi
 
2020 2학기 정기스터디 1주차
2020 2학기 정기스터디 1주차2020 2학기 정기스터디 1주차
2020 2학기 정기스터디 1주차Moonki Choi
 
2020 1학기 정기스터디 2주차
2020 1학기 정기스터디 2주차2020 1학기 정기스터디 2주차
2020 1학기 정기스터디 2주차Moonki Choi
 

More from Moonki Choi (12)

2021 2학기 정기 세미나 5주차
2021 2학기 정기 세미나 5주차2021 2학기 정기 세미나 5주차
2021 2학기 정기 세미나 5주차
 
2021 2학기 정기 세미나 4주차
2021 2학기 정기 세미나 4주차2021 2학기 정기 세미나 4주차
2021 2학기 정기 세미나 4주차
 
2021 여름방학 정기 세미나 3주차
2021 여름방학 정기 세미나 3주차2021 여름방학 정기 세미나 3주차
2021 여름방학 정기 세미나 3주차
 
2021 여름방학 정기 세미나 1주차
2021 여름방학 정기 세미나 1주차2021 여름방학 정기 세미나 1주차
2021 여름방학 정기 세미나 1주차
 
2021 알림 오세요
2021 알림 오세요2021 알림 오세요
2021 알림 오세요
 
2021 1학기 정기 세미나 6주차
2021 1학기 정기 세미나 6주차2021 1학기 정기 세미나 6주차
2021 1학기 정기 세미나 6주차
 
2020 여름방학 정기스터디 6주차
2020 여름방학 정기스터디 6주차2020 여름방학 정기스터디 6주차
2020 여름방학 정기스터디 6주차
 
2020 여름방학 정기스터디 5주차
2020 여름방학 정기스터디 5주차2020 여름방학 정기스터디 5주차
2020 여름방학 정기스터디 5주차
 
2020 2학기 정기스터디 8주차
2020 2학기 정기스터디 8주차2020 2학기 정기스터디 8주차
2020 2학기 정기스터디 8주차
 
2020 2학기 정기스터디 2주차
2020 2학기 정기스터디 2주차2020 2학기 정기스터디 2주차
2020 2학기 정기스터디 2주차
 
2020 2학기 정기스터디 1주차
2020 2학기 정기스터디 1주차2020 2학기 정기스터디 1주차
2020 2학기 정기스터디 1주차
 
2020 1학기 정기스터디 2주차
2020 1학기 정기스터디 2주차2020 1학기 정기스터디 2주차
2020 1학기 정기스터디 2주차
 

Recently uploaded

fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptAfnanAhmad53
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...ronahami
 
Introduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfIntroduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfsumitt6_25730773
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptxJIT KUMAR GUPTA
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueBhangaleSonal
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityMorshed Ahmed Rahath
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.Kamal Acharya
 
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesLinux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesRashidFaridChishti
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network DevicesChandrakantDivate1
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...drmkjayanthikannan
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxkalpana413121
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesMayuraD1
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdfKamal Acharya
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdfKamal Acharya
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsvanyagupta248
 
Electromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxElectromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxNANDHAKUMARA10
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdfKamal Acharya
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Call Girls Mumbai
 

Recently uploaded (20)

fitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .pptfitting shop and tools used in fitting shop .ppt
fitting shop and tools used in fitting shop .ppt
 
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...Max. shear stress theory-Maximum Shear Stress Theory ​  Maximum Distortional ...
Max. shear stress theory-Maximum Shear Stress Theory ​ Maximum Distortional ...
 
Introduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdfIntroduction to Data Visualization,Matplotlib.pdf
Introduction to Data Visualization,Matplotlib.pdf
 
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
Call Girls in South Ex (delhi) call me [🔝9953056974🔝] escort service 24X7
 
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
COST-EFFETIVE  and Energy Efficient BUILDINGS ptxCOST-EFFETIVE  and Energy Efficient BUILDINGS ptx
COST-EFFETIVE and Energy Efficient BUILDINGS ptx
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
A Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna MunicipalityA Study of Urban Area Plan for Pabna Municipality
A Study of Urban Area Plan for Pabna Municipality
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using PipesLinux Systems Programming: Inter Process Communication (IPC) using Pipes
Linux Systems Programming: Inter Process Communication (IPC) using Pipes
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
Unit 4_Part 1 CSE2001 Exception Handling and Function Template and Class Temp...
 
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced LoadsFEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
FEA Based Level 3 Assessment of Deformed Tanks with Fluid Induced Loads
 
UNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptxUNIT 4 PTRP final Convergence in probability.pptx
UNIT 4 PTRP final Convergence in probability.pptx
 
DeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakesDeepFakes presentation : brief idea of DeepFakes
DeepFakes presentation : brief idea of DeepFakes
 
Online food ordering system project report.pdf
Online food ordering system project report.pdfOnline food ordering system project report.pdf
Online food ordering system project report.pdf
 
School management system project Report.pdf
School management system project Report.pdfSchool management system project Report.pdf
School management system project Report.pdf
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
Electromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptxElectromagnetic relays used for power system .pptx
Electromagnetic relays used for power system .pptx
 
Online electricity billing project report..pdf
Online electricity billing project report..pdfOnline electricity billing project report..pdf
Online electricity billing project report..pdf
 
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
Bhubaneswar🌹Call Girls Bhubaneswar ❤Komal 9777949614 💟 Full Trusted CALL GIRL...
 

2021 1학기 정기 세미나 2주차

  • 1. 서울시립대 알고리즘 소모임 완전 탐색 1학기 2주차 서울시립대 알고리즘 소모임
  • 2. 강의자 소개 2020 AL林 정기 스터디 2 이름 최문기 소속 서울시립대 컴퓨터과학부(16학번) 핸들 iknoom1107(BOJ) IKnoom(Codeforces) IKnoom(AtCoder) ICPC 팀 (팀명 미정) - 김정현, 오규민, 최문기
  • 3. 스터디 공지(~3월 30일) 2020 AL林 정기 스터디 3 문제 풀이 스터디 그룹을 나누어 정규 세미나의 연습 문제를 함께 풀어보고 풀이를 공유 https://www.notion.so/AL-413334b2632447789e58c1daa64fa009 대회 스터디 ACM-ICPC, SCPC와 같은 알고리즘 대회를 준비 https://www.notion.so/AL-2364ec7bc77a49ffbd83abeaf484e7c2
  • 4. 前 몇가지 선행 지식 2020 AL林 정기 스터디 4 파이썬 프로그래밍 : 반복문, 조건문, 배열 수학 : 순열, 조합, 수열의 일반항과 점화식
  • 5. 今 오늘 할 것 2020 AL林 정기 스터디 5 • 시간복잡도, 공간복잡도 • 알고리즘을 분석하여 더 효율적인 알고리즘이 무엇인지 알기 • 알고리즘이 한정된 자원 내에서 실행 가능한지 예측하기 • 완전 탐색 • 완전 탐색과 효율적인 문제 해결 방법 비교해보기 • 다양한 상황에서 어떻게 완전 탐색을 하는지 간단하게 살펴보기
  • 6. 後 세미나를 듣고 나서 2020 AL林 정기 스터디 6 문제를 풀어봅시다. 꼭 풀어봅시다. 발표자가 생각하는 문제를 푸는 능력 : 아이디어, 구현력, 배경지식
  • 7. 2020 AL林 정기 스터디 7 알고리즘의 분석 (시간복잡도, 공간복잡도)
  • 8. 알고리즘 분석의 필요성 2020 AL林 정기 스터디 8 우리는 앞으로 여러 알고리즘을 설계할 것입니다. 여러 알고리즘 중 어떤 알고리즘이 더 좋은 알고리즘일까요? 그리고 한정된 자원 내에서 알고리즘이 수행 가능할까요? 설계 분석
  • 9. 1. 더 좋은 알고리즘 2020 AL林 정기 스터디 9 여러 알고리즘 중 어떤 알고리즘이 더 좋은 알고리즘일까요? ✓ 알고리즘을 평가하는 두가지 기준 1. 알고리즘의 수행 시간 2. 알고리즘의 필요 메모리
  • 10. 알고리즘의 수행 시간 2020 AL林 정기 스터디 10 n = 5 arr = [1, 2, 3, 4, 5] sum = 0 for i in range(n): sum = sum + arr[i] print(sum) # 15 입력의 크기가 n일 때, n번의 연산
  • 11. 알고리즘의 수행 시간 2020 AL林 정기 스터디 11 입력의 크기가 n일 때, n(n–1)/2번의 연산 n = 5 arr = [1, 3, 5, 7, 9] sum = 0 for i in range(n - 1): for j in range(i + 1, n): sum = sum + i * j print(sum) # 35
  • 12. 알고리즘의 수행 시간 2020 AL林 정기 스터디 12 입력의 크기가 n일 때, n(n+1)(n+2)/6번의 연산 n = 5 arr = [2, 4, 6, 8, 10] sum = 0 for i in range(n): for j in range(i, n): for k in range(i, j + 1): sum = sum + arr[k] print(sum) # 210
  • 13. 빅오 표기법(Big-O notation) 2020 AL林 정기 스터디 13 ✓ 빅오 표기법(Big-O notation) - 시간복잡도(문제를 해결하는데 걸리는 시간과 입력의 함수 관계)를 나타내는 방법. - 𝑂 𝑓(𝑛) 은 최고차항의 차수가 𝑓(𝑛)과 일치하거나 더 작은 함수의 집합을 나타낸다. “수행시간의 상한” “아무리 오래걸린다 하더라도”
  • 14. 빅오 표기법(Big-O notation) 2020 AL林 정기 스터디 14 𝑓 𝑛 = 𝑛 = 𝑂 𝑛 𝑓 𝑛 = 𝑛 𝑛−1 2 = 𝑂 𝑛2 𝑓 𝑛 = 𝑛 𝑛+1 (𝑛+2) 6 = 𝑂 𝑛3
  • 15. 빅오 표기법(Big-O notation) 2020 AL林 정기 스터디 15 𝑓 𝑛 = 𝑛 + 𝑛 = 𝑂 𝑛 𝑓 𝑛 = 𝑛2 + 50000 = 𝑂 𝑛2 𝑓 𝑛 = 50000 = 𝑂 1 𝑓 𝑛 = 3𝑛 log 𝑛 + 9 = 𝑂 𝑛 log 𝑛
  • 16. 빅오 표기법(Big-O notation) 2020 AL林 정기 스터디 16 𝑓 𝑛 = 2𝑛 + 𝑛100 = 𝑂 2𝑛 𝑓 𝑛 = 100 ∗ 2𝑛 + 3𝑛 = 𝑂 3𝑛 𝑓 𝑛 = 2𝑛! + 2𝑛 = 𝑂 𝑛! 𝑓 𝑛 = 10000 ∗ 𝑛! = 𝑂 𝑛!
  • 17. 빅오 표기법(Big-O notation) 2020 AL林 정기 스터디 17 빅오 표기법은 “상한”을 나타냅니다. 𝑓 𝑛 = 2𝑛 + 3 = 𝑂 𝑛2 -> O 𝑓 𝑛 = 𝑛2 + 7𝑛 = 𝑂 𝑛 -> X
  • 18. 빅오 표기법(Big-O notation) 2020 AL林 정기 스터디 18 O(1) < O(logn) < O(√n) < O(n) < O(nlogn) < O(n2) < O(n3) < O(2n) < O(n!)
  • 19. 알고리즘의 필요 메모리 2020 AL林 정기 스터디 19 공간복잡도(문제를 해결하는데 필요한 메모리와 입력의 함수 관계) 또한 시간복잡도와 동일하게 빅오 표기법으로 나타냅니다. n = 5 arr = [1, 2, 3, 4, 5] sum = 0 for i in range(n): sum = sum + arr[i] print(sum) # 15 → 공간복잡도 O(n)
  • 20. 2. 한정된 자원에서 짐작하기 2020 AL林 정기 스터디 20 한정된 자원 내에서 알고리즘이 수행 가능할까요?
  • 21. 시간 제한 – 108 룰 2020 AL林 정기 스터디 21 ✓ 108 룰 컴퓨터는 1초에 간단한 동작을 대략 108번 할 수 있다. * 어림짐작이며 완전히 정확하지는 않습니다.
  • 22. 시간 제한 – 108 룰 2020 AL林 정기 스터디 22 연습해봅시다. 𝑂 𝑛 , 𝑛 ≤ 105 시간제한 1초 : 맞았습니다! 𝑂 𝑛2 , 𝑛 ≤ 105 시간제한 1초 : 시간초과 𝑂 𝑛2 , 𝑛 ≤ 5 × 103 시간제한 1초 : 맞았습니다! 𝑂 𝑛3 , 𝑛 ≤ 5 × 103 시간제한 1초 : 시간초과
  • 23. 시간 제한 – 108 룰 2020 AL林 정기 스터디 23 연습해봅시다. 𝑂 2𝑛 , 𝑛 ≤ 100 시간제한 1초 : 시간초과 𝑂 2𝑛 , 𝑛 ≤ 20 시간제한 1초 : 맞았습니다! 𝑂 𝑛! , 𝑛 ≤ 20 시간제한 1초 : 시간초과 𝑂 𝑛! , 𝑛 ≤ 8 시간제한 1초 : 맞았습니다!
  • 24. 시간 제한 – 108 룰 2020 AL林 정기 스터디 24 N의 크기 시간 제한 시간 복잡도 8 1초 𝑂 𝑁 , 𝑂 𝑁2 , 𝑂 𝑁3 , 𝑂 2𝑁 , 𝑂(𝑁!) 25 1초 𝑂 𝑁 , 𝑂 𝑁2 , 𝑂 𝑁3 , 𝑂 2𝑁 300 1초 𝑂 𝑁 , 𝑂 𝑁2 , 𝑂 𝑁3 5000 1초 𝑂 𝑁 , 𝑂 𝑁2 1000000 1초 𝑂 𝑁 입력의 제한과 시간 제한이 주어지면 허용되는 시간복잡도를 예측할 수 있다.
  • 25. 메모리 제한 2020 AL林 정기 스터디 25 프로그램이 점유하는 메모리는 보통 계산하기 쉽습니다. 예를 들어 C언어에서 int 정수 하나는 4byte → int 106개의 배열은 4MB 따라서 분석하기 쉽기도하고 실제로 문제가 되는 경우도 적은 편입니다. 알고리즘 대회나 온라인 저지에서도 메모리 제한이 넉넉한 편입니다. (가끔 32MB나 8MB로 적게 주어지기도 합니다.)
  • 26. 더 공부해볼 것 2020 AL林 정기 스터디 26 왜 최악의 경우(빅오 표기법)만 분석하나요? - 알고리즘의 효율성이 문제가 되는 것은 입력 크기가 충분히 클 때입니다. 입력이 작으면 알고리즘의 효율성에 상관없이 금방 결과를 확인할 수 있습니다. 최악의 경우를 개선하는 것이 알고리즘 문제해 결의 주 관심사입니다. - 최선의 경우와 평균적 경우를 표현하는 방법도 있습니다.(오메가 표기법, 세타 표기법) 오메가 표기 법은 아예 쓰지 않는다고 보면 되고 세타 표기법은 확률적 알고리즘을 분석할 때 쓰기도 합니다. 하 지만 평균적인 경우라는게 일반적으로 분석이 어렵고 객관적인 평가도 어려워서 분석하지 않는 편입 니다.
  • 27. 더 공부해볼 것 2020 AL林 정기 스터디 27 빅오 표기법(점근 표기법)의 엄밀한 수학적 정의 - https://en.wikipedia.org/wiki/Big_O_notation - https://m.blog.naver.com/kks227/220769859177 시간복잡도가 애매하면 어떡하죠? ex) O(n2), n < 2만, 시간제한 1초 - 테스트를 해봐야합니다. 백준에 제출하고 기도합시다. 시간복잡도 분석이 이정도로 끝인가요? - 아닙니다. 알고리즘의 수행시간을 지배하는 것은 반복된 작업입니다. 반복된 작업이 수행될 수 있는 방 법은 반복문 또는 재귀호출이지요. 반복문은 위에서 한 것과 같이 단순한 산술로 끝나지만 재귀호출 은 그렇지 않습니다. 4주차 재귀함수, 5주차 분할정복에서 연습해봅시다.
  • 28. 2020 AL林 정기 스터디 28 완전 탐색
  • 29. 완전 탐색(Brute-force Search) 2020 AL林 정기 스터디 29 답이 될 수 있는 모든 경우의 수를 탐색하는 방법 바로 예시를 봅시다.
  • 30. [BOJ 3040번] 백설 공주와 일곱 난쟁이 2020 AL林 정기 스터디 30 9개의 정수 중에서 합이 100이 되는 7개의 정수를 구한다. → 9개 중에서 2개를 제외했을 때 나머지 정수의 합이 100 → 2개를 제외하는 모든 경우의 수는 9C2 = 36가지 → 36가지 경우를 완전 탐색
  • 31. [BOJ 3040번] 백설 공주와 일곱 난쟁이 2020 AL林 정기 스터디 31 arr = [] sum = 0 for i in range(9): x = int(input()) sum += x arr.append(x) for i in range(9): for j in range(9): if i == j: continue if sum - arr[i] - arr[j] == 100: arr[i] = -1 arr[j] = -1 for i in range(9): if arr[i] != -1: print(arr[i]) http://boj.kr/e20a7eef8f0241c394e510119e9ec2d9
  • 32. 이것도 완전탐색으로 풀어볼까요? 2020 AL林 정기 스터디 32 [1931번 회의실 배정] https://www.acmicpc.net/problem/1931 [1912번 연속합] https://www.acmicpc.net/problem/1912
  • 33. 이것도 완전탐색으로 풀어볼까요? 2020 AL林 정기 스터디 33 [1931번 회의실 배정] 완전 탐색 : O(2n) 그리디 알고리즘 : O(n) [1912번 연속합] 완전 탐색 : O(n3) 동적 프로그래밍 : O(n)
  • 34. 첫번째 관찰 2020 AL林 정기 스터디 34 완전 탐색은 정답이 되는 경우를 모두 탐색하는 해결방법이다. 그렇기 때문에 설계한 알고리즘이 비효율적일 수도 있으며 다른 알고리즘으로 최적화가 될 수도 있다.
  • 35. 구현할 수 있나요? 2020 AL林 정기 스터디 35 A = {1, 2, 9, 4, 11, 13, 94, 7, 22}에서 1. 크기가 9인 모든 순열 출력하기 2. 크기가 7인 모든 조합 출력하기 3. 모든 부분집합 출력하기
  • 36. 구현할 수 있나요? 2020 AL林 정기 스터디 36 슬라이딩 퍼즐 풀기
  • 37. 구현할 수 있나요? 2020 AL林 정기 스터디 37 스도쿠 풀기
  • 38. 구현할 수 있나요? 2020 AL林 정기 스터디 38 루빅스 큐브 풀기
  • 39. 구현할 수 있나요? 2020 AL林 정기 스터디 39
  • 40. 두번째 관찰 2020 AL林 정기 스터디 40 완전 탐색을 구현하는 것만으로도 그렇게 쉽지 않다. 상황에 따라 완전탐색을 구현하는 방법에 대해서 더 알아야한다.
  • 41. 2020 AL林 정기 스터디 41 정리
  • 42. 정리 2020 AL林 정기 스터디 42 • 알고리즘 분석(시간복잡도, 공간복잡도) • 알고리즘이 효율적인지 평가하는 두가지 기준은 실행 시간과 메모리이다. • 단순한 산술로 알고리즘의 시간복잡도를 구해보았다. • 빅표 표기법(Big-O notation)을 통해서 시간복잡도를 나타내었다. • 한정된 자원과 입력의 크기를 보고 주어진 알고리즘이 실행가능한지 예측하였다.
  • 43. 정리 2020 AL林 정기 스터디 43 • 완전 탐색 • 완전 탐색은 답이 될 수 있는 모든 경우를 탐색하는 방법이다. • 완전탐색은 비효율적인 방법일 수도 있다. • 완전탐색(모든 경우의 수를 탐색한다는 아이디어)을 구현하는 것 만으로도 상당히 어려울 수도 있다. 상황에 따라 구현하는 방법을 더 알아야한다.
  • 44. 정리 2020 AL林 정기 스터디 44 알고리즘을 구현하는 방법 (4주차) 재귀 함수 (6주차, 7주차) 자료구조 (8주차, 9주차) DFS, BFS 효율적인 알고리즘을 설계하는 방법 (3주차) 그리디 알고리즘 (5주차) 분할 정복 (10주차) 동적 프로그래밍
  • 45. 2020 AL林 정기 스터디 45 연습 문제
  • 46. 연습 문제 2020 AL林 정기 스터디 46 완전 탐색 기본 문제 3040 백설 공주와 일곱 난쟁이 19532 수학은 비대면강의입니다 2798 블랙잭 연습 문제 (문제풀이 스터디 발표) 2231 분해합 10448 유레카 이론 1198 삼각형으로 자르기 1254 팰린드롬 만들기 2503 숫자 야구 구현하는 연습을 꼭 합시다.
  • 47. 연습 문제 2020 AL林 정기 스터디 47 완전 탐색 도전 문제 2615 오목 17085 십자가 2개 놓기 1182 부분수열의 합 구현하는 연습을 꼭 합시다.