안녕하세요~ 신입입니다. 평소 궁금한게 있어서 조심스레 올려봅니다.

  • SGT_H
    SGT_H

    안녕하세요.
    비전공자이고, 지금은 군 복무중입니다.
    우연히 프로젝트 오일러(project euler)에 대해 알게 되어서 틈틈이 문제를 풀게 되었고, 반년간 거의 100문제 정도 풀게 되었습니다. 매주 있는 외박때도 계속 이 문제만 풀고 있네요.
    그런데 이제 문제를 푸는데에 있어서 한계를 느끼더라고요. 적절한 알고리즘을 생각해내는 것도 어렵고, 생각해내도 실행시간이 황당하게 오래 걸리고... 물론 제가 쓰는 언어가 MATLAB(학부때 배운 언어라 이걸로 문제 풀고 있습니다.)이라 그 특성상 실행속도가 느리지만.

    여기서 질문드리겠습니다.
    1. 공대 재학중인데, 수학적 배경으로는 공학수학까지가 전부이고, 컴퓨터 관련한 수업은 아예 들은적이 없습니다. 알고리즘에 대해 배워본 적도 한번도 없고요(자료구조니 그런것들...)이 프로젝트 오일러를 좀 더 수월하게 풀기 위해선 알고리즘에 관해 따로 배우면 더 수월하겠죠? 비전공자가 입문으로 배우기에 적합한 자료나 책 추천해주실 수 있나요? 그리고 알고리즘 추천도서라고 나와있는 것들 비전공자가 배경없이 봐도 무난한건지..
    2. 프로젝트 오일러 같은 PROBLEM SOLVING을 열심히 해두면 실제 소프트웨어나 웹을 개발할때 도움을 줄 수 있는지 궁금합니다. 제 경우는 수치해석 강좌에서 MATLAB 약간 다뤄본 게 전부인데, 프로젝트 오일러를 하다보니 앱 개발이라던가 프로그래밍에 대해 더 알아보고 싶습니다.

    두서없는 질문이지만 읽어주셔서 감사합니다


    7년 전
1개의 댓글이 있습니다.
  • codeonwort
    codeonwort

    안녕하세요. 저는 컴퓨터공학을 전공하고 있습니다.

    1. 책을 보면 알고리즘을 설명하면서 의사코드로라도 그 알고리즘의 구현을 보여주는데요. 주로 쓰이는 언어가 C/C++/Java/Python 같은 명령형(imperative) 언어입니다. 그리고 드물게 함수형(functional) 언어 스타일을 쓰는 책이 있습니다. 두 스타일이 알고리즘을 짜는 방식 자체가 크게 달라서, 알고리즘을 배우려면 먼저 어떤 스타일이 더 이해하기 쉬운지 보는 게 좋을 것 같습니다. MATLAB에 익숙하시다니 제 생각에는 하스켈이나 스칼라 같은 함수형 언어가 더 배우기 쉬울 것 같습니다. 책은 Introduction to Algorithms가 유명하고 전공 교재로도 많이 쓰인다지만 저는 읽어보지 않아서 잘 모르겠습니다. 읽어본 것 중에는 도널드 커누스의 [The Art of Computer Programming]과 문병로 교수님의 [쉽게 배우는 알고리즘]을 추천합니다.

    2. 어떤 소프트웨어를 만드느냐에 따라 크게 달라지는 것 같습니다. 제 경우는 게임을 개발할 때 복잡한 알고리즘을 풀고 구현하는 것보다는 물리 시뮬레이션이나 그래픽 렌더링을 위해 수학 계산을 오류 없이 수행하는 것이 중점이었습니다.


    7년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.