코딩 테스트 java, python, cpp, kotiln, javascript 개발자 인터뷰

oune·2023년 3월 21일
19

SSAFYcial

목록 보기
3/4

다양한 코테에서 여러가지 언어가 가능합니다.
흔하게는 Cpp, Java, python, 조금 드믈게 사용하는 javascript, koltin 같은 언어들이 있죠. 수만은 언어들이 존재하고, 여러 언어들이 저마다의 장단점이 있기 때문에 코딩테스트나, PS를 풀때 어떤 언어를 선택할지 고민하는 많은 사람들을 봤었습니다.

SSAFY 9기 구미 5반 사람들 중 각 언어별 한분씩 코테를 풀때 각 언어의 특징은 어떠한지 어떠한 장단점들이 있는지 인터뷰를 해보았습니다.

SSAFY 9기 5반 통계

한사람당 여러언어 중복 집계, 50문제 이상 푼경우만 포함

Java

자바를 선택한 이유가 어떻게 되시나요?

웹백엔드 지망하고 있는데 백엔드 직무가 국내에서 Java를 선호하는 경향과 별도로 코테용 언어를 익히는것이 불필요 하다고 느꼈기 때문에 자바를 선택하게 되었습니다.

자바로 PS를 할때 장점은 어떤것들이 있나요?

라이브러리를 이용하여 문자열 처리를 편하게 할수 있고, 코드를 작성할때 객체지향적으로 구현하는데 용의합니다.
또한 자바로 설명하는 학습자료들이 많아 공부하기 좋고, 백엔드를 지망하게 되면 주로 배우는 언어로 입문하기 쉬운 장점도 있습니다. 구직활동시에 자바를 원하는 공고들이 많고, 코딩테스트에 자바가 없는 경우가 없다는 것도 장접입니다.

자바로 PS를 할때 아쉬운 점은 어떤것들이 있나요?

백준에서 문제를 풀때 같은 문제를 같은 알고리즘으로 풀어보 Cpp는 성공하고 java 는 실패하는 경우가 존재합니다.
코드가 장황한 경우가 많고, 메소드가 길게 나오는 경향이 있습니다. 가독성이 좋지 않습니다.
상속을 이용한다면 코드의 가독성이 더욱더 나빠지기도 합니다.

자바로 PS를 할때 팁이 있다면?

Compareable 인터페이스를 활용하는 방식을 익혀두는 것이 좋습니다.
switch 대신 hash 맵을 이용하여 최적화할수 있고.
기본적인 내용이지만 입력으로는 BufferedReader 클래스를 이용하고, 출력시에는 BufferedWriter 나 StringBuilder 를 사용하는 것이 좋습니다.
입출력시 Stream 클래스를 이용하면 복잡한 입력 대신 한줄로 빠르게 구현할 수 있습니다.

Python

Python을 선택한 이유가 어떻게 되시나요?

알고리즘입문을 파이썬으로 하는 분위기가 있었고 문법이 간결하고, 언어보다 알고리즘 이론에 더 시간을 투자하고자 선택하게 되었습니다.

Python으로 PS를 할때 장점은 어떤것들이 있나요?

문법 적으로는 list 선언시 list comprehension을 이용하는 것이 편합니다.
입력받을때 input을 , map 을 이용하여 쉽게 입력할 할 수 있고
json, 클래스 생성에서 장점이 있습니다.
return 여러개 하는 문법도 장점입니다.
삼성역량에서는 불가능하지만 permutation 라이브러리를 이용하여 순열을 쉽게 구현 할 수 있고
코드가 짧은것이 장접입니다.

Python으로 PS를 할때 아쉬운 점은 어떤것들이 있나요?

다른 코드들을 읽을때 파이썬 코드가 압축된 경우가 있는데 그때 가독성이 좋지 않습니다.

Python으로 PS를 할때 팁이 있다면?

python3, pypy 일반적으로 pypy 가 우세하지만 상황에 따라 간혹 느린 경우가 있습니다.

유튜브로 배우고, 이것이 코딩테스트다 책을 추천합니다.

Cpp

cpp를 선택한 이유가 어떻게 되시나요?

첫언어로 공부했던 게 Cpp 라서 계속해서 쓰고있습니다.

cpp로 PS를 할때 장점은 어떤것들이 있나요?

빠르고 메모리사용량이 적습니다. 대회나 코딩테스트에서 용이합니다, Cpp을 기반으로 하는 공부 자료가 풍부하다

cpp로 PS를 할때 아쉬운 점은 어떤것들이 있나요?

언어 습득난이도가 다른 언어에 비해 높은 편입니다. 문자열 처리가 힘들기도 하네요. 또한 메모리 해제를 직접 신경써서 코딩해야 합니다..

cpp로 PS를 할때 팁이 있다면?

STL 공부를 하세요.
c언어의 라이브러리 섞어 쓰면 속도를 향상가능이 가능합니다.
리스트를 정적할당으로 처리하면 효율 향상 가능이 가능합니다.

Node.js

javascript를 선택하게 된 계기가 어떻게 되시나요?

원래 프론트 엔드개발을 지망해오고 있었는데, javascript, ps 역량을 동시에 높이기 위해서 선택하게 되었습니다.

javascript로 PS를 할때 장점은 어떤것들이 있나요?

배열선언시 크기를 지정하지 않고 사용해서 한계가 없고, 배열 사용이 편합니다

javascript로 PS를 할때 아쉬운 점은 어떤것들이 있나요?

배열 범위를 벗어사는 입력기 가능해서, 문제가 발생하곤 합니다.
메모리사용량이 많습니다.
문제를 선택하고 푸는데 제한이 있습니다.

javascript로 PS를 할때 팁이 있다면?

입출력시 파일시스템을 활용해서 입력합니다.
하지만 몇몇 경우 불가능한 경우도 존재합니다.
DS 공부는 책을 이용하여 공부
js 공부한다면 모던 딥 자바스크립트 책을 추천합니다.

마지막 한마디

장인은 도구탓을 하지 않는다.
알고리즘은 파이썬

Kotlin

Kotlin을 선택한 이유가 어떻게 되시나요?

코틀린 백엔드를 지망하는데, 간결한 문법이 맘에 들고, 직무에서 사용할 언어와 시험 언어를 일치시키고자 코틀린을 선택하게 되었습니다.

Kotlin으로 PS를 할때 장점은 어떤것들이 있나요?

코드가 간결하고, 가독성이 좋음, 함수형 프로그래밍을 적용하여 더 편하게 문제를 푸는 경우가 존재합니다
문법적으로 타입추론, 구조분해 할당, data class 들을 이용하면 자바보다 편리하게 문제를 풀 수 있습니다.
배열의 선언과 초기화가 편리

자바와 라이브러리를 공유하므로 자바 교육자료를 거의 그대로 적용이 가능, 자바에서의 자료구조의 장단점 동일하게 적용이 가능합니다.

스태틱 변수를 사용하지 않고 불변을 지키며 문제 풀이도 가능합니다.

Kotlin으로 PS를 할때 아쉬운 점은 어떤것들이 있나요

코틀린으로 코딩테스트를 응시할수 없는 회사들이 종종 있습니다.

백준의 드믈게 코틀린으로 풀면 다른 언어들보다 더 효율적인 코드가 필요한 경우가 있습니다.

Kotlin으로 PS를 할때 팁 이 있다면

자바 공부 자료 그대로 사용하고
블로그 들을 보면서 코틀린의 특색들을 익히는것이 좋습니다.
https://www.acmicpc.net/blog/view/71
https://velog.io/@oune/%EC%BD%94%ED%8B%80%EB%A6%B0-%EC%9C%BC%EB%A1%9C-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8

profile
어느새 신입 개발자

0개의 댓글