O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Coding interview

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 34 Anúncio

Mais Conteúdo rRelacionado

Semelhante a Coding interview (20)

Mais recentes (20)

Anúncio

Coding interview

  1. 1. 코딩 인터뷰 맛보기 FREAKOUT INC 안수한
  2. 2. 코딩 인터뷰 + 알고리즘 열풍
  3. 3. 코딩 인터뷰 + 알고리즘 열풍
  4. 4. 코딩 인터뷰 + 알고리즘 열풍
  5. 5. 코딩 인터뷰 + 알고리즘 열풍
  6. 6. 코딩 인터뷰 + 알고리즘 열풍
  7. 7. 미약한 경험이지만..
  8. 8. 코딩인터뷰 = 알고리즘 문제?  No!  알고리즘 문제는 코딩 인터뷰의 일부.
  9. 9. 코딩인터뷰 (G사 기준)  OOP 설계  시스템 설계  알고리즘 + 자료구조
  10. 10. OOP 설계  기술적인 문제나 실생활 관련 문제를 Object로 설계.  Ex)  Design a musical jukebox using object-oriented principles.  Design a parking lot using OOP.
  11. 11. 시스템 설계  서비스나 플랫폼의 전반적인 설계.  실제 플랫폼과 같이 네트워크, DB, Indexing 등의 다양한 요소를 적재적소에 이용하여 설계.
  12. 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. 13. OOP 설계 & 시스템 설계  정답은 없다.  끊임없이 요구 사항과 사양을 파악하는 것이 중요.  파악을 위해 끊임없는 질문과 커뮤니케이션이 중요.
  14. 14. 알고리즘 + 자료구조  많은 사람들이 생각하는 그 부분.  이 부분도 역시 끊임없는 질문이 필요.  데이터 타입, 크기, 사용 가능한 메모리, 제약사항 등등..  다만, 이 부분은 어느정도의 정답은 존재.  복수의 답이 존재하는 경우는 물론 있음.
  15. 15. 알고리즘 + 자료구조  프로그래밍 언어는 크게 상관없고 자신이 편한 것으로 쓰는 것이 보통.  특정 언어 개발자로 가는 경우를 제외하고는..  온사이트에서는 대부분 IDE사용 없이 화이트 보드 코딩.  따로 연습이 필요.
  16. 16. 알고리즘 + 자료구조 범위는?
  17. 17. 알고리즘 + 자료구조 범위는?  https://github.com/jwasham/coding-interview-university
  18. 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. 19. 알고리즘 + 자료구조  여기까지는 사실 누구나 다 할 수 있는 원론적인 얘기.  저 Practice를 좀 더 효율적이고, 확률을 높일 수 있을까?  이 부분에 대해서 생각해보고자 하는 것이 오늘의 미션!  특히! 처음 준비하시거나, 시간이 얼마 안 남으신 분들.  Warning: 제가 찍은데서만 나온다고 하지는 않았습니다.
  20. 20. 알고리즘 + 자료구조  이 쪽 파트는 사실 운칠기삼.  아무리 알고리즘을 빠삭하게 외워도, 낯선 문제가 나오면 쉽지 않음.  본인 스타일과 맞지 않는 문제라면 코딩에서 꼬일 가능성도 높음.  반대로 본인 취향대로 나오면 개꿀.
  21. 21. In my opinion..  Big-O notation.  Data Structures  Array  Binary Search  Stack, Queue, Linked-lists, Hash table  Trees & Graphs  Heap, Binary Search Tree(Traverse-order), DFS, BFS  Sorting  Quick sort, Merge sort  Simple Dynamic programming
  22. 22. In my opinion..  개념은 익혔다는 전제하에..  저 항목에 표시된 영역으로 풀리는 문제부터 풀어볼 것.  나머지 부분의 문제들은 일단 스킵.
  23. 23. Big-O notation 이건 무조건! 정답에 대한 판별 기준.
  24. 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.
  25. 25. Data structures  Heap or Quicksort  Ex) 정렬되지 않은 배열이 주어지면, 그 안에서 k번째로 큰 수 찾기.
  26. 26. Data structures  Heap or Quicksort  Ex) 정렬되지 않은 배열이 주어지면, 그 안에서 k번째로 큰 수 찾기.  단일 스레드 기준 시간제한 1초.  0 < n <= 10000
  27. 27. Data structures  Heap or Quicksort  Ex) 정렬되지 않은 배열이 주어지면, 그 안에서 k번째로 큰 수 찾기.  Max-Heap 만들어 놓고 k번 extract.  O(n + klgn)  Quicksort의 원리를 이용.  최악의 경우는 O(n ^2).  하지만 average로는 O(n) 기대 가능.
  28. 28. Data structures  Stack & Queue  Ex) 두 개의 Stack이 주어졌을 때, 이를 이용하여 Queue를 구현하시오.
  29. 29. Data structures  Binary Search Tree  Ex)
  30. 30. Simple Dynamic progaramming  앞에 계산된 결과를 이용하여 다음 결과를 도출.  다음 요소가 중요.  어떤 구조를 사용하고 정의할 것인가?  1 차원, 2차원, 3차원 배열중..  초기화  어느 원소를 참조하고 계산하는가가 중요.  몇 가지 패턴 외워서 때려 넣어보는 것을 추천.
  31. 31. Simple Dynamic progaramming  Longest Increasing Sequence.  1차원 배열.  Longest Common Sequence.  2차원 배열.
  32. 32. 간단한 모의 테스트. 
  33. 33. 감사합니다!
  34. 34. 참고  Cracking the coding interview.  Careercup: https://www.careercup.com/page?pid=google-interview- questions&n=2

×