언어별 특징 정리
- 제너릭 프로그래밍
- C++ : template로 구현
- 파이썬 : 동적 타이핑 언어라 제너릭 필요 없다 (하지만 이것이 코드 가독성을 낮추기도 한다)
- 배열 반복
- C++, 자바, 파이썬 모두 for-each loop 지원해준다
- 구조체
- C++ : struct
- 파이썬 : namedtuple (from collections import namedtuple)
- 3.7 이상부터는 dataclass 지원 (from dataclass import dataclass)
from dataclass import dataclass
@dataclass
class Product:
weight: int=None
price: float=None
apple = Product()
apple.weight = 10
apple.price = 100.0
- 클래스
- C++ : 선언부 / 구현부 분리 가능하다 (헤더파일과 소스파일로)
- 파이썬 : 클래스 존재
from dataclass import dataclass
@dataclass
class Rectangle:
width: int
height: int
def area(self):
return self.width*self.height
rec = Rectangle(3, 4)
print(rec.are())
어떠한 언어를 선택해야 하는가?
- 면접관이 쉽게 이해할 수 있는가? (화이트보드 코딩 테스트에서 특히 더 중요하다!)
- 코딩 플랫폼에서 지원하는가? (필수 확인 조건)
- 유연한 언어인가?
- 대규모 프로젝트 진행 시 가독성을 위해 자료형을 엄격히 선언해주는 게 좋다.
- 하지만 빠른 시간 내 문제풀이를 진행해야 하는 코딩 테스트에서는 유연한 언어가 좀 더 편할 수 있다.
- 외부 라이브러리를 사용할 수 없는 코딩테스트! 그렇다면 언어 레벨에서 많은 기능을 지원하는가?
- C++는 STL이 표준 라이브러리라서 다양한 자료구조, 알고리즘 사용할 수 있다
- 반면, C는 모든 자료구조 구현해야 하므로 코딩 테스트 언어로는 부적절
- 파이썬도 언어 레벨에서 다양한 기능 제공! (이 때문에 일부 기업은 파이썬을 코딩 테스트 언어로 사용하는 것을 금지...)
'다전공_컴퓨터공학 > 알고리즘 문제풀이' 카테고리의 다른 글
[파이썬 알고리즘] 6장 - 문자열 조작 (valid palindrome) (0) | 2020.11.02 |
---|---|
[파이썬 알고리즘] 4장 - 자료형 (0) | 2020.10.31 |
[파이썬 알고리즘] 4장 - 빅오 (0) | 2020.10.31 |
[파이썬 알고리즘] 3장 파이썬 문법 (0) | 2020.10.31 |
[파이썬 알고리즘] 1장 코딩 인터뷰 (0) | 2020.10.30 |