10. OOP 설계
기술적인 문제나 실생활 관련 문제를 Object로 설계.
Ex)
Design a musical jukebox using object-oriented principles.
Design a parking lot using OOP.
11. 시스템 설계
서비스나 플랫폼의 전반적인 설계.
실제 플랫폼과 같이 네트워크, DB, Indexing 등의 다양한
요소를 적재적소에 이용하여 설계.
12. 시스템 설계
Ex)
Duplicate URLs: You have 10 billion URLs. How do you detect
the duplicate documents?
Social Network: How would you design the data structures
for a very large social network like FB or Linkedin? Describe
how you would design an algorithm to show the shortest path
between two people.
13. OOP 설계 & 시스템 설계
정답은 없다.
끊임없이 요구 사항과 사양을 파악하는 것이 중요.
파악을 위해 끊임없는 질문과 커뮤니케이션이 중요.
14. 알고리즘 + 자료구조
많은 사람들이 생각하는 그 부분.
이 부분도 역시 끊임없는 질문이 필요.
데이터 타입, 크기, 사용 가능한 메모리, 제약사항 등등..
다만, 이 부분은 어느정도의 정답은 존재.
복수의 답이 존재하는 경우는 물론 있음.
15. 알고리즘 + 자료구조
프로그래밍 언어는 크게 상관없고 자신이 편한 것으로
쓰는 것이 보통.
특정 언어 개발자로 가는 경우를 제외하고는..
온사이트에서는 대부분 IDE사용 없이 화이트 보드 코딩.
따로 연습이 필요.
18. 알고리즘 + 자료구조. 필요한건?
Practice Practice Practice Practice Practice Practice Practice
Practice Practice Practice Practice Practice Practice Practice
Practice Practice Practice Practice Practice Practice Practice
Practice Practice Practice Practice Practice Practice Practice
Practice Practice Practice Practice Practice Practice Practice
Practice Practice Practice Practice Practice Practice Practice
Practice Practice Practice Practice Practice Practice Practice
Practice Practice Practice Practice Practice Practice Practice
Practice Practice Practice Practice Practice Practice Practice
Practice Practice Practice Practice Practice Practice Practice
19. 알고리즘 + 자료구조
여기까지는 사실 누구나 다 할 수 있는 원론적인 얘기.
저 Practice를 좀 더 효율적이고, 확률을 높일 수 있을까?
이 부분에 대해서 생각해보고자 하는 것이 오늘의 미션!
특히! 처음 준비하시거나, 시간이 얼마 안 남으신 분들.
Warning: 제가 찍은데서만 나온다고 하지는 않았습니다.
20. 알고리즘 + 자료구조
이 쪽 파트는 사실 운칠기삼.
아무리 알고리즘을 빠삭하게 외워도, 낯선 문제가
나오면 쉽지 않음.
본인 스타일과 맞지 않는 문제라면 코딩에서 꼬일
가능성도 높음.
반대로 본인 취향대로 나오면 개꿀.
24. Big-O notation
Tip: 보통 온라인 대회에서의 입력치에 따른 기준
n <= 100000000: O(n)
n <= 100000 : O(nlgn)
n <= 10000: O(n^2)
n <= 100: O(n ^ 3)
n <= 20: O(2 ^ n)
저보다 느린 알고리즘은 보통 time-limit exceeded.
26. Data structures
Heap or Quicksort
Ex) 정렬되지 않은 배열이 주어지면, 그 안에서 k번째로 큰
수 찾기.
단일 스레드 기준 시간제한 1초.
0 < n <= 10000
27. Data structures
Heap or Quicksort
Ex) 정렬되지 않은 배열이 주어지면, 그 안에서 k번째로 큰
수 찾기.
Max-Heap 만들어 놓고 k번 extract.
O(n + klgn)
Quicksort의 원리를 이용.
최악의 경우는 O(n ^2).
하지만 average로는 O(n) 기대 가능.
30. Simple Dynamic progaramming
앞에 계산된 결과를 이용하여 다음 결과를 도출.
다음 요소가 중요.
어떤 구조를 사용하고 정의할 것인가?
1 차원, 2차원, 3차원 배열중..
초기화
어느 원소를 참조하고 계산하는가가 중요.
몇 가지 패턴 외워서 때려 넣어보는 것을 추천.