6. 발표자 소개 Problem Solving
• handle : ntopia
• 학생 때 KOI를 했으나 별 성과는 없었음
• 2016 ACM-ICPC Daejeon Regional Contest
• PLEASE OPEN TESTDATA, 3등
• 2016 ACM-ICPC Bangkok Regional Contest
• ntopia never dies, 5등
2
8. PS란? • 자료구조, 알고리즘 이론을 배우고
• 이론을 응용해 알고리즘 문제를 풀고
• Programming Language 로 구현하여
• 맞았습니다!! 를 받는 것 [?]
• 이것으로 경쟁하는 대회도 많이 있다
• Competitive Programming
3
18. 로직 구현력 • 특정한 일 한가지를 하는 로직을 구현하는 능력
• 많이 좋아짐
• PS의 세계에는 까다로운 구현 문제가 많다
• 이런 문제들을 두려워하지 말고 제끼지 말고
• 꼭 풀어보면 좋음
• ICPC에도 빡센 구현문제가 한두문제씩은 꼭 나옴
• https://www.acmicpc.net/board/view/11969
7
19. 시간,공간에
대한 감
• 실행시간에 대한 실질적인 감
• TLE를 열심히 쌓다보면
• 입력의 크기가 A고 내 코드의 시간복잡도가 대충 B면
• 이 코드는 대충 x초 안에 돌아가겠구나
• 메모리 사용량에 대한 실질적인 감
• RE, MLE를 열심히 쌓다보면
• 메모리를 이렇게 많이 잡으면 안되는구나
• 이렇게 짜면 메모리가 터지는구나
• 을 쉽게 체득할 수 있다
8
20. 경계조건 • 경계조건을 항상 염두에 두고 코딩하게 됨
• 이것을 놓쳐 생기는 버그가 꽤 많다
• Integer overflow
• Array indexing error
• 등등...
9
21. 문제해결 전략 • 다양한 알고리즘 문제를 풀다보면
• 이건 작은 문제로 쪼개서 해결하는게 좋겠구나
• 이건 거꾸로 생각해보는게 좋겠구나
• 등등의 느껴지는 바가 있다
• 실제 SW개발에서도 이런 전략은 유효함
• 알고리즘 문제를 풀 때
• 풀이를 이해하는 것을 넘어서
• 어떻게 이런 풀이가 나오게 되었는지 생각의 과정을 잘 살
펴보는 것이 중요
10
22. 마음가짐 • PS는 실패의 연속
• 내가 틀릴 수 있다는 사실을 자연스럽게 학습
• 정말 이렇게 어처구니 없게 틀릴 수 있구나
• 내가 이런 실수를 할 수도 있구나
• 겸손과는 약간 다른 듯?
• 실패를 거울삼아 공부하고 수련하기
• 이런 경험들이 실제 SW를 개발할 때도 이어짐
11
23. 기타 • 자료구조 지식
• 아주 간간히 쓰이는 지식
• DP
• Network flow
• 수학 : 기하, 정수론, 확률, 선형대수, ...
• 등등...
• 재미
12
25. 정리 • PS를 열심히 하고 계신 분들, 혹은 시작하실 분
• PS가 재미있다면 계속 열심히 하면 됩니다!
• 다만 오늘 발표한 내용을 머릿속 어딘가에 담아두
신다면 좋을 것 같네요!
13
26. 정리 • PS 공부하다 질리면 딴짓도 많이 하세요
• CSE 에는 재미있는 분야가 많습니다
• 여러 분야를 경험해두면 나중에 피와 살이 됩니다
• 취직 때문에 어쩔 수 없이 PS를 하는 분들
• 면접을 볼 수 있을 정도로만 준비하고
• 그 이후에 PS에 흥미가 느껴지지 않는다면
• 다른 분야에 노력을 기울이는 것이 좋습니다
13