Transcript
Page 1: 구종만 - 알고리즘: 기술 사회의 연금술
Page 2: 구종만 - 알고리즘: 기술 사회의 연금술

(진짜로) 안녕하세요?

Page 3: 구종만 - 알고리즘: 기술 사회의 연금술

구종만• 각종 프로그래밍 대회 (옛날~) !

• http://algospot.com (’07~) !

• 알고리즘 문제 해결 전략 (’11) !

• DRW Trading Group (~’09) !

• GETCO (~’13)

Page 4: 구종만 - 알고리즘: 기술 사회의 연금술

Algorithms: 기술 사회의 연금술

@jongman

Page 5: 구종만 - 알고리즘: 기술 사회의 연금술

인물 스무고개 !

(현실 인물, 만화/소설 등장인물)

Page 6: 구종만 - 알고리즘: 기술 사회의 연금술
Page 7: 구종만 - 알고리즘: 기술 사회의 연금술

http://kr.akinator.com/

Page 8: 구종만 - 알고리즘: 기술 사회의 연금술
Page 9: 구종만 - 알고리즘: 기술 사회의 연금술

이미지 리사이징

Page 10: 구종만 - 알고리즘: 기술 사회의 연금술

돌돔 뚊

Page 11: 구종만 - 알고리즘: 기술 사회의 연금술

Context Aware Resizing

Page 12: 구종만 - 알고리즘: 기술 사회의 연금술

http://www.youtube.com/watch?v=c-SSu3tJ3ns

Page 13: 구종만 - 알고리즘: 기술 사회의 연금술

“충분히 진보된 기술은 마법과 구분되지 않는다.”

!

- Arthur C. Clarke

Page 14: 구종만 - 알고리즘: 기술 사회의 연금술

과거의 마법들

Page 15: 구종만 - 알고리즘: 기술 사회의 연금술
Page 16: 구종만 - 알고리즘: 기술 사회의 연금술

놀라운 일들은 어떻게 구현될까?

Page 17: 구종만 - 알고리즘: 기술 사회의 연금술

대중의 인식.jpg

Page 18: 구종만 - 알고리즘: 기술 사회의 연금술

흑마법.jpg

Page 19: 구종만 - 알고리즘: 기술 사회의 연금술

모르는 자에겐 마법이지만 !

아는 자에겐 예술일 뿐!

Page 20: 구종만 - 알고리즘: 기술 사회의 연금술

큰 그림은 알 수 있다!

“검색 엔진? 역색인 만들어서 검색하고, 용량 많으니 분산 처리 잘 하고, 스팸 걸러내기랑 랭킹 신경 잘 써야지.”

“얼굴 인식? 얼굴 윤곽 인식하고, 눈코입 크기랑 위치 사용해서 분류하면 되지.”

Page 21: 구종만 - 알고리즘: 기술 사회의 연금술

전산학이 현대의 마법이라면 !

알고리즘은 그 기초

Page 22: 구종만 - 알고리즘: 기술 사회의 연금술

알고리즘

Page 23: 구종만 - 알고리즘: 기술 사회의 연금술

재미 없는 정의

• 약간은 모호한 정의:

• “컴퓨터가 주어진 작업을 수행하는 방법”

• 소스 코드 != 알고리즘

Page 24: 구종만 - 알고리즘: 기술 사회의 연금술

예제 문제 - 정렬

[6,6,6,8,5,8,7,6,6,7,3] !

을 정렬하면 !

[3,5,6,6,6,6,6,7,7,8,8]

Page 25: 구종만 - 알고리즘: 기술 사회의 연금술

퀵소트 (T. Hoare, 1960)

Page 26: 구종만 - 알고리즘: 기술 사회의 연금술
Page 27: 구종만 - 알고리즘: 기술 사회의 연금술
Page 28: 구종만 - 알고리즘: 기술 사회의 연금술

한 문제를 여러 방법으로 풀 수 있어요

Page 29: 구종만 - 알고리즘: 기술 사회의 연금술

힌트:

DTD

Page 30: 구종만 - 알고리즘: 기술 사회의 연금술

사실 입력은 LG 순위![6, 6, 6, 8, 5, 8, 7, 6, 6, 7, 3]

Page 31: 구종만 - 알고리즘: 기술 사회의 연금술

빈도 수를 세자[6, 6, 6, 8, 5, 8, 7, 6, 6, 7, 3]

{3: 1, 5: 1, 6: 5, 7: 2, 8: 2}

Page 32: 구종만 - 알고리즘: 기술 사회의 연금술

정렬 결과 복구![6, 6, 6, 8, 5, 8, 7, 6, 6, 7, 3]

{3: 1, 5: 1, 6: 5, 7: 2, 8: 2}

[3, 5, 6, 6, 6, 6, 6, 7, 7, 8, 8]

Page 33: 구종만 - 알고리즘: 기술 사회의 연금술
Page 34: 구종만 - 알고리즘: 기술 사회의 연금술

새 알고리즘 고안 과정

Page 35: 구종만 - 알고리즘: 기술 사회의 연금술

주식투자

Page 36: 구종만 - 알고리즘: 기술 사회의 연금술

가락동의 현인!

Page 37: 구종만 - 알고리즘: 기술 사회의 연금술

저의 미래.jpg

Page 38: 구종만 - 알고리즘: 기술 사회의 연금술

가장 돈을 많이 번 구간을 찾아보자!

Page 39: 구종만 - 알고리즘: 기술 사회의 연금술

다 해본다!….

….

….

….

….

….

Page 40: 구종만 - 알고리즘: 기술 사회의 연금술
Page 41: 구종만 - 알고리즘: 기술 사회의 연금술

성능 측정

Page 42: 구종만 - 알고리즘: 기술 사회의 연금술

성능 측정

입력 크기 simple()1천 0.17초

Page 43: 구종만 - 알고리즘: 기술 사회의 연금술

성능 측정

입력 크기 simple()1천 0.17초1만 16초

Page 44: 구종만 - 알고리즘: 기술 사회의 연금술

성능 측정

입력 크기 simple()1천 0.17초1만 16초

10만 1568초

Page 45: 구종만 - 알고리즘: 기술 사회의 연금술

성능 측정

입력 크기 simple()1천 0.17초1만 16초

10만 1568초100만 (약) 43시간

1000만 (약) 181일

Page 46: 구종만 - 알고리즘: 기술 사회의 연금술
Page 47: 구종만 - 알고리즘: 기술 사회의 연금술

새 아이디어: 각개격파

Page 48: 구종만 - 알고리즘: 기술 사회의 연금술

반으로 쪼개자!

정답 구간은:

• 왼쪽 절반에 있거나, 오른쪽 절반에 있거나

• 왼쪽에서 시작 - 오른쪽에서 끝

= +

Page 49: 구종만 - 알고리즘: 기술 사회의 연금술

걸쳐 있는 경우

Page 50: 구종만 - 알고리즘: 기술 사회의 연금술
Page 51: 구종만 - 알고리즘: 기술 사회의 연금술

성능 측정

입력 크기 simple() divide…()1천 0.17초 0.002초1만 16초 0.02초

10만 1568초 0.2초100만 (약) 43시간 3초

1000만 (약) 181일 27초

Page 52: 구종만 - 알고리즘: 기술 사회의 연금술

새 아이디어: 최대값 - 최소값

Page 53: 구종만 - 알고리즘: 기술 사회의 연금술

문제:

Page 54: 구종만 - 알고리즘: 기술 사회의 연금술

아.. 안돼

Page 55: 구종만 - 알고리즘: 기술 사회의 연금술

지금까지의 최소값!

Page 56: 구종만 - 알고리즘: 기술 사회의 연금술
Page 57: 구종만 - 알고리즘: 기술 사회의 연금술

성능 측정

입력 크기 simple() divide…() fast()1천 0.17초 0.002초 0.000008초1만 16초 0.02초 0.008초

10만 1568초 0.2초 0.08초100만 (약) 43시간 3초 0.8초

1000만 (약) 181일 27초 8초

Page 58: 구종만 - 알고리즘: 기술 사회의 연금술

교훈

• 같은 문제를 푸는 여러 방법들 간에 큰 성능 차이가 있다!

• 입력이 커지면 커질 수록 알고리즘간의 성능 차이는 커진다!

Page 59: 구종만 - 알고리즘: 기술 사회의 연금술

아까 보여준거랑 너무 차이나는데요?

Page 60: 구종만 - 알고리즘: 기술 사회의 연금술

천릿길도 한 걸음부터

• 간단한 알고리즘은 어려운 알고리즘의 구성 요소가 된다

• 많은 알고리즘은 설계 “기법” 혹은 “원칙”들을 공유한다

• Akinator와 리사이징도 알고 보면 간단!

Page 61: 구종만 - 알고리즘: 기술 사회의 연금술

Akinator 파헤치기

Page 62: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

표로 만들어 보기

Page 63: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

첫 번째 질문?

Page 64: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

첫 번째 질문?

Page 65: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

두 번째 질문?

Page 66: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

두 번째 질문?

Page 67: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

새 정보 받아들이기

Page 68: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

“이 둘을 어떻게 구분하나요?”

Page 69: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

가수? 🔵 🔴

사용자 입력

Page 70: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

가수? 🔵 🔴

부분적 정보에서 배우기

Page 71: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

가수? 🔵 🔴

괜히 한번 물어보기

Page 72: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

가수? 🔵 🔴

괜히 한번 물어보기

Page 73: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

가수? 🔵 🔴

결과가 이랬다면

Page 74: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 🔵 🔵 🔴 🔴 🔵 🔵 🔵 🔵

30세 이상? 🔴 🔵 🔵 🔵 🔵 🔴 🔵 🔴

정치인? 🔴 🔵 🔵 🔵 🔴 🔴 🔴 🔵

미국인? 🔴 🔴 🔵 🔴 🔵 🔴 🔵 🔴

가수? 🔵 🔴 🔴

아하!

Page 75: 구종만 - 알고리즘: 기술 사회의 연금술

불확실성 해결하기

• “김정은은 정치인인가요?”

• “엘사는 정치인인가요?”

• “김정은이 작년에 30살이 되었어요!”

• “잘생겼습니까?”

Page 76: 구종만 - 알고리즘: 기술 사회의 연금술

여자? 100% 100% 0% 0% 100% 100% 100% 100%

30세 이상? 0% 100% 100% 80% 90% 0% 100% 0%

정치인? 0% 100% 100% 100% 0% 0% 0% 70%

미국인? 0% 0% 100% 0% 100% 20% 100% 10%

모든 것을 확률로

Page 77: 구종만 - 알고리즘: 기술 사회의 연금술

이미지 리사이징 파헤치기

Page 78: 구종만 - 알고리즘: 기술 사회의 연금술

아이디어: 한번에 한칸만 지워보자

Page 79: 구종만 - 알고리즘: 기술 사회의 연금술

어느 칸을 줄일까?

Page 80: 구종만 - 알고리즘: 기술 사회의 연금술

아이디어: 제일 티 안나게!

Page 81: 구종만 - 알고리즘: 기술 사회의 연금술

“티 안난다”의 정의

Page 82: 구종만 - 알고리즘: 기술 사회의 연금술

“티 안난다”의 정의

Page 83: 구종만 - 알고리즘: 기술 사회의 연금술

“티 안난다”의 정의

Page 84: 구종만 - 알고리즘: 기술 사회의 연금술

1 2 2 2 1 0 2 2 0 4 4 0 1 1 0 0 1 2 3 1 1 0 3 1 1 1 0 0 0 1

0 1 2 3 2 0 2 2 0 5 4 1 1 1 0 0 1 2 3 0 1 0 2 0 1 0 0 0 0 0

1 1 1 3 3 0 2 2 1 4 3 1 2 1 0 0 0 3 4 1 1 0 1 1 0 0 0 0 0 0

1 1 1 4 4 0 1 1 1 4 2 0 2 2 0 1 0 2 4 1 1 1 1 1 0 1 0 0 0 0

1 1 1 3 4 1 0 1 1 3 2 0 2 2 0 1 1 2 4 2 2 2 1 1 1 1 0 0 0 1

1 1 1 2 3 1 1 0 1 3 2 0 1 1 0 0 1 1 4 2 2 2 0 1 2 1 1 1 1 1

1 1 1 2 2 1 1 1 2 3 1 1 1 1 0 0 1 0 4 2 3 1 0 2 2 0 1 0 0 0

1 1 1 2 2 0 1 0 3 3 1 0 1 0 0 0 1 0 4 2 3 1 0 2 2 0 1 0 0 0

1 0 1 2 2 1 0 0 2 2 1 0 0 0 0 0 2 1 4 2 3 0 1 2 1 0 0 0 0 0

1 1 1 2 1 1 0 1 2 2 1 0 0 0 1 0 2 1 3 1 3 0 2 2 0 0 0 0 0 0

1 1 1 2 1 1 0 1 2 1 1 0 0 0 1 1 2 0 2 1 2 0 3 2 1 1 0 0 0 1

1 1 1 2 1 0 0 1 1 1 1 0 0 0 0 1 2 0 2 1 2 0 3 1 1 1 0 0 1 1

1 1 2 2 1 0 0 1 1 1 1 0 0 0 0 1 2 0 3 1 2 0 2 1 1 2 0 0 1 1

1 1 2 2 1 0 0 1 0 1 1 0 0 0 0 2 2 0 3 1 2 0 2 1 0 1 0 0 1 0

1 1 1 2 1 0 0 1 0 1 1 0 0 0 0 1 2 0 3 1 2 0 1 1 0 1 0 0 0 1

1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 3 2 2 0 1 0 0 0 1 0 0 1

1 2 2 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 3 2 2 0 0 1 1 0 1 0 1 0

1 2 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 3 2 1 0 0 0 1 0 2 0 1 0

1 2 1 1 1 0 0 0 0 0 0 1 0 0 0 2 1 0 3 2 1 1 0 0 1 0 1 0 1 0

1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 2 1 1 3 3 1 2 0 0 0 0 1 0 1 0

1 0 1 2 0 0 1 0 0 1 1 2 1 0 0 2 1 1 3 3 2 2 0 0 0 0 1 0 1 0

2 1 1 2 1 1 1 1 0 0 1 2 2 1 0 3 1 1 2 1 2 1 0 0 0 0 1 0 1 0

1 1 1 2 1 1 1 1 1 1 0 1 2 2 0 2 1 0 2 1 1 1 0 0 0 1 0 1 1 0

1 1 0 1 0 0 1 1 2 1 0 0 2 2 0 2 2 1 2 1 1 1 0 0 0 1 0 0 1 1

1 1 0 1 0 0 0 2 2 2 1 0 2 2 0 2 2 1 1 1 1 1 0 0 1 1 0 0 0 1

1 1 0 1 1 1 0 1 2 2 1 0 1 2 0 2 2 0 0 0 1 1 0 1 1 2 0 0 0 2

1 1 0 1 1 0 0 1 2 3 2 0 1 2 0 1 2 1 0 0 1 1 0 1 2 2 0 0 1 1

0 1 1 0 0 0 0 0 1 2 2 1 0 1 0 1 1 2 1 1 2 1 1 1 3 2 1 0 0 1

0 1 1 0 0 0 0 0 1 2 1 1 0 0 0 0 0 1 2 0 3 1 1 0 3 1 1 0 0 0

Page 85: 구종만 - 알고리즘: 기술 사회의 연금술

1 2 2 2 1 0 2 2 0 4 4 0 1 1 0 0 1 2 3 1 1 0 3 1 1 1 0 0 0 1

0 1 2 3 2 0 2 2 0 5 4 1 1 1 0 0 1 2 3 0 1 0 2 0 1 0 0 0 0 0

1 1 1 3 3 0 2 2 1 4 3 1 2 1 0 0 0 3 4 1 1 0 1 1 0 0 0 0 0 0

1 1 1 4 4 0 1 1 1 4 2 0 2 2 0 1 0 2 4 1 1 1 1 1 0 1 0 0 0 0

1 1 1 3 4 1 0 1 1 3 2 0 2 2 0 1 1 2 4 2 2 2 1 1 1 1 0 0 0 1

1 1 1 2 3 1 1 0 1 3 2 0 1 1 0 0 1 1 4 2 2 2 0 1 2 1 1 1 1 1

1 1 1 2 2 1 1 1 2 3 1 1 1 1 0 0 1 0 4 2 3 1 0 2 2 0 1 0 0 0

1 1 1 2 2 0 1 0 3 3 1 0 1 0 0 0 1 0 4 2 3 1 0 2 2 0 1 0 0 0

1 0 1 2 2 1 0 0 2 2 1 0 0 0 0 0 2 1 4 2 3 0 1 2 1 0 0 0 0 0

1 1 1 2 1 1 0 1 2 2 1 0 0 0 1 0 2 1 3 1 3 0 2 2 0 0 0 0 0 0

1 1 1 2 1 1 0 1 2 1 1 0 0 0 1 1 2 0 2 1 2 0 3 2 1 1 0 0 0 1

1 1 1 2 1 0 0 1 1 1 1 0 0 0 0 1 2 0 2 1 2 0 3 1 1 1 0 0 1 1

1 1 2 2 1 0 0 1 1 1 1 0 0 0 0 1 2 0 3 1 2 0 2 1 1 2 0 0 1 1

1 1 2 2 1 0 0 1 0 1 1 0 0 0 0 2 2 0 3 1 2 0 2 1 0 1 0 0 1 0

1 1 1 2 1 0 0 1 0 1 1 0 0 0 0 1 2 0 3 1 2 0 1 1 0 1 0 0 0 1

1 1 1 1 1 0 1 1 0 1 1 1 0 1 1 1 1 0 3 2 2 0 1 0 0 0 1 0 0 1

1 2 2 1 1 0 0 0 0 0 1 1 0 0 0 1 1 0 3 2 2 0 0 1 1 0 1 0 1 0

1 2 1 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 3 2 1 0 0 0 1 0 2 0 1 0

1 2 1 1 1 0 0 0 0 0 0 1 0 0 0 2 1 0 3 2 1 1 0 0 1 0 1 0 1 0

1 1 1 1 0 0 0 0 0 0 0 1 0 0 0 2 1 1 3 3 1 2 0 0 0 0 1 0 1 0

1 0 1 2 0 0 1 0 0 1 1 2 1 0 0 2 1 1 3 3 2 2 0 0 0 0 1 0 1 0

2 1 1 2 1 1 1 1 0 0 1 2 2 1 0 3 1 1 2 1 2 1 0 0 0 0 1 0 1 0

1 1 1 2 1 1 1 1 1 1 0 1 2 2 0 2 1 0 2 1 1 1 0 0 0 1 0 1 1 0

1 1 0 1 0 0 1 1 2 1 0 0 2 2 0 2 2 1 2 1 1 1 0 0 0 1 0 0 1 1

1 1 0 1 0 0 0 2 2 2 1 0 2 2 0 2 2 1 1 1 1 1 0 0 1 1 0 0 0 1

1 1 0 1 1 1 0 1 2 2 1 0 1 2 0 2 2 0 0 0 1 1 0 1 1 2 0 0 0 2

1 1 0 1 1 0 0 1 2 3 2 0 1 2 0 1 2 1 0 0 1 1 0 1 2 2 0 0 1 1

0 1 1 0 0 0 0 0 1 2 2 1 0 1 0 1 1 2 1 1 2 1 1 1 3 2 1 0 0 1

0 1 1 0 0 0 0 0 1 2 1 1 0 0 0 0 0 1 2 0 3 1 1 0 3 1 1 0 0 0

Page 86: 구종만 - 알고리즘: 기술 사회의 연금술

천릿길도 한 걸음부터 #2• 이미지 높이가 한 줄이라고 생각해 봅시다

2 2 1 0 0 2 2 1 0 0 0

2 1 1 0 1 2 2 1 0 0 0

2 1 1 0 1 2 1 1 0 0 0

2 1 0 0 1 1 1 1 0 0 0

….

Page 87: 구종만 - 알고리즘: 기술 사회의 연금술

천릿길도 한 걸음부터 #2• 생각할 것도 없네

2 2 1 0 0 2 2 1 0 0 0

2 1 1 0 1 2 2 1 0 0 0

2 1 1 0 1 2 1 1 0 0 0

2 1 0 0 1 1 1 1 0 0 0

….

Page 88: 구종만 - 알고리즘: 기술 사회의 연금술

천릿길도 두 걸음부터• 이미지가 두 줄이라고 생각해 봅시다

2 2 1 0 0 2 2 1 0 0 0

2 1 1 0 1 2 2 1 0 0 0

2 1 1 0 1 2 1 1 0 0 0

2 1 0 0 1 1 1 1 0 0 0

….

Page 89: 구종만 - 알고리즘: 기술 사회의 연금술

천릿길도 1.1 걸음부터• 두 번째 줄의 한 칸만 생각해 봅시다

2 2 1 0 0 2 2 1 0 0 0

2 1 1 0 1 2 2 1 0 0 0

2 1 1 0 1 2 1 1 0 0 0

2 1 0 0 1 1 1 1 0 0 0

….

Page 90: 구종만 - 알고리즘: 기술 사회의 연금술

천릿길도 1.1 걸음부터• 여기까지 내려오는 가장 짧은 경로는?

2 2 1 0 0 2 2 1 0 0 0

2 1 1 0 1 2 2 1 0 0 0

2 1 1 0 1 2 1 1 0 0 0

2 1 0 0 1 1 1 1 0 0 0

….

Page 91: 구종만 - 알고리즘: 기술 사회의 연금술

천릿길도 1.1 걸음부터• 최소 합은 1이구나!

2 2 1 0 0 2 2 1 0 0 0

2 1 1 0 1 2 2 1 0 0 0

2 1 1 0 1 2 1 1 0 0 0

2 1 0 0 1 1 1 1 0 0 0

….

Page 92: 구종만 - 알고리즘: 기술 사회의 연금술

이제 2 걸음• 모든 칸에 대해 최소 합을 갱신

2 2 1 0 0 2 2 1 0 0 0

4 2 1 0 1 2 3 1 0 0 0

2 1 1 0 1 2 1 1 0 0 0

2 1 0 0 1 1 1 1 0 0 0

….

Page 93: 구종만 - 알고리즘: 기술 사회의 연금술

2.1 걸음• 빨간 칸까지 내려오는 가장 작은 경로 합은?

2 2 1 0 0 2 2 1 0 0 0

4 2 1 0 1 2 3 1 0 0 0

2 1 1 0 1 2 1 1 0 0 0

2 1 0 0 1 1 1 1 0 0 0

….

Page 94: 구종만 - 알고리즘: 기술 사회의 연금술

네 3입니다!• 이렇게 반복하면 최단 경로를 찾을 수 있어요

2 2 1 0 0 2 2 1 0 0 0

4 2 1 0 1 2 3 1 0 0 0

2 1 1 0 1 3 1 1 0 0 0

2 1 0 0 1 1 1 1 0 0 0

….

Page 95: 구종만 - 알고리즘: 기술 사회의 연금술

참 쉽죠?

Page 96: 구종만 - 알고리즘: 기술 사회의 연금술

결론

Page 97: 구종만 - 알고리즘: 기술 사회의 연금술

세상을 바꾸는 힘

• 좋은 식견을 갖춘 개발자의 중요 요건

• 밖에서 보면 놀라워도

• 직접 해 보면 비교적 쉽다

• 재미나게 공부해서 더 좋은 개발자가 되자!

Page 98: 구종만 - 알고리즘: 기술 사회의 연금술

어떻게 공부하나?

Page 99: 구종만 - 알고리즘: 기술 사회의 연금술

어떻게 공부하나?

Page 100: 구종만 - 알고리즘: 기술 사회의 연금술

프로그래밍 대회

Page 101: 구종만 - 알고리즘: 기술 사회의 연금술

책광고한권만 사주십쇼

(굽신굽신)

Page 102: 구종만 - 알고리즘: 기술 사회의 연금술

감사합니다


Top Related