상세 컨텐츠

본문 제목

알고리즘 문제 풀이: 프로그래밍 언어 추천(C++/Python/Java)

문제풀이

by Gravekper 2020. 11. 8. 07:58

본문

목적에 따라

언어를 새로 배운다면

  • 대회 목적으로는 C++

  • 코딩 테스트 목적으로는 Python

C++, Python, Java 중에 잘 다루는 언어가 있으면

  • 그걸 쓰면 됩니다. 필요하다면 나중에 배우면 됩니다.

언어별 설명

C++

실행 속도가 빠르다.

공부하면서 C++로 된 코드를 읽을 일이 많다.

경시대회나 높은 레이팅이 목적이라면 C++를 배우는 것이 좋다.

Python

배우기 쉽고 최근에 파이썬으로 프로그래밍을 시작하는 사람이 많다.

공부하는 데에 필요한 자료도 충분히 많다.

코딩 테스트를 준비하기 위해 새로 언어를 배운다면 파이썬이 좋다.

실행 속도가 많이 느려서 경시대회용으로는 적합하지 않다.

Java

알고리즘 공부를 하기 위해 자바를 처음부터 배우는 건 권하지 않는다. 자바의 중요한 특징들이 알고리즘 문제 풀이와 큰 관련이 없다.

C와 C++은 어떻게 다른가요?

프로그래밍 대회에 주로 사용되는 부분만 설명합니다. 자세하게 공부하고 싶은 분은 다른 자료도 찾아보는 것을 추천드립니다.

C++은 C에 기존에 없던 기능들을 추가한 언어입니다. 대표적으로 OOP와 관련된 기능들이 있습니다. 다만 OOP와 관련된 기능들은 문제 풀이에 잘 사용하지 않습니다.

C++에는 강력한 라이브러리인 STL(Standard Template Library)이 있고, STL에 구현된 자료구조들은 문제 풀이 과정에 큰 도움이 됩니다. 알고리즘을 공부할 때 관련된 컨테이너에 대해서도 공부하면 좋습니다. 저는 아래 컨테이너들을 자주 사용합니다.

  • pair

  • vector

  • string

  • stack, queue, deque

  • priority queue

  • set, map

  • multiset, multimap

  • unordered_set, unordered_map

C 코드는 보통 C++ 컴파일러로도 실행할 수 있습니다. C에 익숙하다면 평소처럼 C 기반으로 코드를 작성하고 C++ 라이브러리를 추가로 사용해도 됩니다.

같이 보면 좋은 자료

BOJ 언어 도움말 https://www.acmicpc.net/help/language

어떤 C, C++, Java, Python을 사용해야 할까? - baekjoon https://www.acmicpc.net/blog/view/95

관련글 더보기

댓글 영역