IT강의/(Others)

코딩 테스트 or 알고리즘 대회에서 필요한 코딩 지식

샤핑 2021. 5. 19. 02:10
728x90
반응형

SCPC(삼성 프로그래밍 대회) 2018 본선

 

요즘 코딩 테스트를 실시하는 기업(카카오, 네이버, 구글, 페이스북, 넷플릭스 등)이 적지 않고 알고리즘 대회(카카오 대회, 삼성 대회, 구글 코드잼 등)도 많이 열리고 있습니다. 알고리즘 사이트(프로그래머스, 릿코드, 백준, 코드포스 등)도 다양하구요. 그래서 이 글을 안 올릴 수가 없더라구요 ㅋㅋㅋ 따라서 이번 시간에는 코딩 테스트와 알고리즘 대회에서 필요한 코딩 지식을 살펴보겠습니다. 이 글은 코딩 기초를 알려주는 글이 아니므로 자세한 설명은 하지 않겠습니다. 만약 개념을 설명하는 글이 올라오면 링크를 올려서 점차 수정해 나가겠습니다

 

 

(1) Python or C++

- 코딩테스트, 알고리즘 대회, 알고리즘 사이트에서 거의 허용하는 언어입니다.

- 만약 개발자가 되기 위해 코딩 테스트를 준비하는 거라면 Python을, 알고리즘 대회를 준비하는 거라면 C++를 공부해야 합니다. 그 이유는 가장 추천하는 언어는 Python이지만 일부 대회에서는 Python을 허용하지 않기 때문입니다. 가장 대표적으로 삼성 소프트웨어 맴버십, SCPC가 그러죠 ㅠㅠ

 

(2) 변수 (Variable)

- 프로그래밍의 기본 중의 기본입니다. 이 세상에 변수 없는 프로그램은 거의 없어요 ㅋㅋㅋ

- 변수는 값을 저장할 수 있는 공간입니다. 단, 하나만 저장할 수 있습니다.

 

(3) 배열 & 리스트(Python) & 벡터(C++) (Array & Python List & C++ Vector)

- 배열은 정해진 갯수만큼 여러 개의 값을 저장할 수 있는 공간입니다.

- 벡터도 배열처럼 여러 개의 값을 저장할 수 있으나 갯수가 정해져있지 않다는 차이점이 있습니다. 즉, 몇 개든지 값을 추가할 수 있습니다.

 

(4) 함수 (Function)

- 코드를 반복적으로 사용할 수 있도록 구현해둔 형태입니다.

- 수학의 함수를 떠올리시면 됩니다.

 

(5) 구조체 (Structure)

- 변수와 함수들을 묶어놓은 형태의 집합체 입니다.

- C++에서는 변수, 함수 모두 선언할 수 있지만 C에서는 오로지 변수만 선언할 수 있습니다.

 

(6) 자료구조 & 알고리즘 (Data Structure & Algorithm)

- 데이터들을 효율적으로 다루기 위한 방법입니다. 코딩 테스트 및 알고리즘 대회의 꽃이라고 할 수 있죠.

- 만약 코딩 테스트만 준비하는 거라면 그리디(Greedy), 탐색(DFS, BFS, 이진 탐색 등), 다이나믹 프로그래밍(Dynamic Programming)의 개념을 이해한 후 관련 문제를 많이 풀어보는 것을 추천합니다. 그 이유는 이 3가지만 활용할 줄 알아도 왠만한 기업 코딩 테스트는 다 통과할 수 있기 때문입니다. 그러나 알고리즘 대회를 준비하는 거라면 거의 모든 개념을 다 이해해야 하고 문제도 굉장히 많이 풀어야 할 것 같습니다. 그 이유는 코딩 테스트와는 다르게 지엽적인 알고리즘이 많이 출제되는 걸로 알고 있거든요 ㅠㅠ (사실 알고리즘 대회를 많이 안 나가봐서 대회에서 주로 출제되는 알고리즘이 무엇인지는 모르겠습니다 ㅠㅠ 만약 아는 사람 있다면 댓글로 알려주시면 감사하겠습니다!)

 

 

여기까지가 코딩테스트, 알고리즘 대회에서 필요한 지식인 것 같습니다. 따라서 코딩 테스트 or 알고리즘 대회 참여를 원하는 분들은 위의 내용들을 빨리 공부하시고 알고리즘 사이트에서 문제를 많이 풀어보는 것이 좋을 것 같습니다. 만약 혼자서 공부하기가 어렵다면 학원, 스터디 그룹을 알아보셔야 할 것 같습니다.

혹시 이거 말고 더 필요한게 있다는 생각이 들면 댓글로 알려주시면 감사하겠습니다.

728x90
반응형
LIST