ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 알고리즘 언어 선택 / 언어 별 장단점
    알고리즘/etc 2021. 3. 14. 00:55
    반응형

    알고리즘 언어 선택

    대신 해주실 분 구함..

     

    일단 나는 학부 2학년부터 4학년까지 모든 알고리즘을 C++로만 풀었었다.

    나때는 그랬다 나때는..! 알고리즘을 C++ 외의 언어로 푸는 사람들이 거의 없었다고

     

    그래서 너무 당연히 알고리즘을 C++로 풀어왔었는데 

    이게 C++이라는 언어를 알고리즘 외에는 쓸일이 없으니까 점점 언어를 바꿔야 하나 싶은 생각이 들고있다.

     

    오늘 Java로 처음 알고리즘을 풀어봤는데 

    아니 이건 사람할짓이 아니다.

    인풋만 몇줄이냐고 에바야진짜

    이게 c++ 인풋이고

     

    이게 Java Output인데 그냥 이렇게보기엔 별 차이 없어보이지만 java가 훨씬 복잡하다 ㅠ(이 문제가 그나마 간단한 편)

     

    그렇다고 자바를 안쓰자니 자바 기본적인 문법에 대한 이해도가 너무 낮아지고있어서 걱정이다.

     

    머리가 복잡할 땐 뭘하면된다? 내용을 정리하며된다.

     

     

    C++

    장점

    - 손에 익은 알고리즘 언어여서 문제 풀 때 매우 편리하다.

    - Reference가 많다. (아직 많은 분들이 C++로 문제를 풀고 있어서 참고할 자료가 많다)

    - STL에서 제공되는 쓸만한 함수들이 많다. next_permuation이나 lower_bound upper_bound같은거
    > 근데 이거는 내가 다른 언어를 잘몰라서, 어쩌면 다른 언에 더 좋은 것들이 많을 수도 있다.

    - input output이 간단하다.

     

    단점

    - 알고리즘 외에 쓸일이 없다.

    - mac에서 개발환경이 불편하다. 아무리 visual code를 설정 열심히 해봤자 visual studio 못따라가고, 웹 ide는 더 별로다;;;

     

    Java

    장점

    - 실무에서 주로 사용하는 언어이고, 이걸로 알고리즘 풀면 언어에 대한 이해도를 높일 수 있다.

    - intelliJ라는 아주 좋은 IDE를 쓸 수 있다.

     

    단점

    - 주로 사용하던 언어에서 다른 언어로 전환하는 것은 쉬운 일이 아니다.

    - input output이 귀찮다.

    - 시간적으로 손해가 있다. Java언어 자체가 조금 느린 것을 가만해서(요즘 많이 개선되었다고는 하지만) 문제 자체에서 Java는 시간을 더 주는 경우가 많지만, 그래도 C++이면 운좋았으면 통과했을 코드를 Java로 풀면 빡세게 최적화 해야 되는 케이스가 있다.

     

    다 정리했는데도 결정이안된데

    어떡하지?!

     

    결정 도움 주실 분 구함..

     

    반응형

    댓글

Designed by Tistory.