[Research] 개발환경
작성:    
업데이트:
카테고리: Research
태그: CodingTest, OnlineJudge, Python
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="" 파이썬="">, 나동빈, 한빛미디어 이것이>
댓글남기기