[Research] 개발환경

작성:    

업데이트:

카테고리:

태그: , ,

1. 생략


2. 온라인 저지(OJ; Online Judge) 안내

2.1. 해외 온라인 저지

  • 코드포스(Codeforces) : http://www.codeforces.com
  • 탑코더(TopCoder) : https://www. topcoder.com
  • 릿코드(LeetCode) : https://leetcode.com
  • 코드셰프(CODECHEF) : https://www.code.chef.com


2.2. 국내 온라인 저지

  • 백준 온라인 저지(BOJ) : https://www.acmicpc.net
  • 코드업(CodeUp) : https://codeup.kr
  • 프로그래머스(Programmers) : https://programmers.co.kr
  • SW Expert Academy : https://swexpertavademy.com


3. 온라인 저지 상세

3.1. 코드업

  • 난이도가 낮은 문제가 많아 처음 공부하는 사람에게 적합
  • 문제 순서가 난이도 순서와 대체로 비례
  • 알고리즘을 잘 모르거나 이제 막 문제 풀이를 시작한다면, 코드업 사이트의 [문제] - [문제집]에서 [기초 100제]를 꼭 풀어보자. 알고리즘 문제 풀이에서 자주 사용하는 기본 코드 유형과 관련된 문제이다.
  • 코드업에서 간단한 문제 위주로 200문제 가량 푼 뒤 백준 온라인 저지로 넘어가도록 한다.


3.2. 백준 온라인 저지(BOJ)

  • 국내에서 가장 유명한 알고리즘 문제 풀이 사이트
  • 전형적인 코딩 테스트 형식(ACM-ICPC 형식)
  • 문제 순서는 난이도와 무관
  • 크롬에서 solved.ac 확장 프로그램을 설치하면 백준 온라인 저지 문제에 대한 난이도 정보를 확인할 수 있다.
  • 유형별 알고리즘을 선택하여 풀 수 있다는 장점([문제]-[알고리즘 분류])
  • 삼성 SW 역량테스트 대비 문제집 제공


3.3. 프로그래머스

  • 2017년부터 카카오 공채 문제를 모두 제공
  • 본인이 해당 문제를 풀지 못해도 다른 사람의 풀이 코드를 열람할 수 있다. (알고리즘 점수 차감)


3.4. SW Expert Academy

  • 삼성에서 공식적으로 제공하고 있는 알고리즘 학습 사이트
  • 삼성전자의 경우 DFS/BFS를 활용해야 하는 탐색과 시뮬레이션 문제 유형 자주 출제


4. 코딩테스트에 유리한 언어

4.1. 파이썬

  • 초보자가 접근하기 쉬운 언어
  • 쉬우면서도 활용도가 높아 기업이나 대학원, 연구소에서도 많이 사용
  • 풍부한 라이브러리로 다양한 분야에서 많이 활용
  • 인공지능 분야에서도 널리 활용
  • 큰 숫자, 리스트, 문자열을 처리하는 데 있어서 매우 편리한 기능을 기본적으로 내장


4.2. C/C++

  • 실행 시간이 짧고 하드웨어에 더 가까운 언어이기 때문에 더 빠르게 동작
  • 삼성전자는 SW 역량테스트 B형부터는 파이썬 배제
  • 삼성 SW 역량테스트 B/C형은 C++의 필수 라이브러리를 제외한 대부분의 표준 라이브러리를 사용할 수 없어 기본 자료구조 모듈을 모두 직접 작성해야 한다.


4.3. 프로그램 개발 방식

  • API 개발
  • GUI 프로그램 개발
  • 해커톤 등

설문조사 결과 파이썬이 36%의 높은 비중으로 1위를 차지했다. 20%의 자바, 8%의 자바스크립트가 뒤를 잇는다.

  • 파이썬을 기본 언어로 선택하여 공부한다면 상대적으로 수월하게 다양한 문제 상황에 대응하여 문제를 풀 수 있다.
  • 카카오는 특정 서버와 데이터를 주고받으며 통신하는 방식의 문제를 꾸준히 출제하고 잇는데, 이러한 통신 모듈을 작성하는 것도 C++이나 자바에 비해서 사용할 라이브러리나 코드의 수가 훨씬 적다.
  • 최근 코딩테스트의 출제 경향은 파이썬 사용자들에게 유리한 경우가 매우 많다.


5. 실습 환경 구축

  • 온라인 코딩 테스트는 주로 웹 브라우저에서 소스코드를 작성하여 제출
  • 이왕이면 같은 환경에서 연습하는 것이 좋으니, 온라인 IDE를 사용하자.


5.1. 리플릿

  • https://repl.it/languages/python3
  • 로그인 후 사용하면, 다른 개발자와 동시에 코딩할 수 있는 협업 기능


5.2. 파이썬 튜터

  • http://pythontutor.com/visualize.html
  • 개인에게 꼭 맞는 튜터와 같은 기능을 제공하는 온라인 IDE 서비스
  • [Visualize Execution] 버튼을 누르면 소스코드를 단계별로 실행 가능
  • 프로그램의 동작을 함께 보고자 할 때 도움


5.3. 온라인 GDB

  • https://www.onlinegdb.com
  • 디버깅 기능을 제공하는 사이트
  • 보통은 C/C++ 사용자가 많이 이용하는 편
  • 앞선 두 사이트가 제대로 동작하지 않을 때 사용


REFERENCES

  • <이것이 취업을="" 위한="" 코딩테스트다="" with="" 파이썬="">, 나동빈, 한빛미디어

댓글남기기