Skip to content

Latest commit

 

History

History
136 lines (54 loc) · 3.87 KB

algo_intro.md

File metadata and controls

136 lines (54 loc) · 3.87 KB

✅ 알고리즘 INTRO

  1. 알고리즘? 코딩테스트?
  2. 코딩테스트 종류
  3. 코딩테스트 준비하기
  4. 데이터 구조와 알고리즘

코딩테스트 준비!

3주간의 목표: 삼성 역량 시험에서 IM 통과할 수 있을 정도로

첫 번째 산: SW 역량테스트(IM형, A, B, C형) IM 단계 합격하기(3달간 준비)

*SWEA D2~D3, 교육은 SWEA Intermediate 강의를 들어보면 좋음

두 번째 산:

What is Algorism?

어떤 문제를 해결하기 위해 정해진 일련의 절차나 행동

문제란 Input을 넣었을 때, 원하는 Output이 나오도록 하는 것

기업에서는 코딩테스트를 기반으로 신입의 현업 능력을 추정

오픈북 테스트 환경인 경우가 많으니까, 개인 노트나 IDE를 잘 정리해두고 시험에 유리하게 활용하기

화이트보드 기술면접: 혼자서 문제를 술술 풀고 나오면 탈락! 내가 생각하는 것을 얼마나 잘 communicate 하는지를 보려고 보는 손코딩 시험

코딩테스트 준비를 한마디로 정리하면? 많이 풀기!

단순히 많이 풀기만 하는 게 아니라, 많이 풀기의 지름길을 알려 줄 예정

문제는 매번 풀 때마다 다른 유형을 푸는 것이 좋다? X

연습 때는 같은 유형 문제를 단기간에 여러 번 반복하는 것이 좋고

코딩테스트 직전에는 모의고사처럼 시간 제한을 두고 여러 유형을 푸는 것이 좋다.

오랜 시간 고민했는데 풀리지 않을 때, 끝까지 답을 보지 않는 것이 좋다? X

다만, 이후에 답을 보지 않고 반드시 한번 더 풀어서 내 것으로 만들어야 한다. 최대한 타인의 답을 많이 보면서 여러 풀이를 습득하는 것이 좋다.

알고리즘 문제는 몇 문제 정도 풀어야 코딩테스트를 통과할 수 있을까?

통계적으로 300~350문제. 사람마다 다르지만 이 정도 풀면 대부분의 코딩테스트에 무난하게 합격할 수 있다.

(기초 100, 중급 100, 고급 100 / D2 50개 정도?)

기타 꿀팁

변수명 대충 짓지 않기 (for문에 i 정도는 가능! 임시변수니까)

언어가 가지는 내장 함수, 라이브러리를 적극 활용하기

반복되는 코드는 함수화를 통해 가독성 있게 작성하기

면접을 위해 풀이를 남에게 설명하는 연습 반드시 필요

함수화를 잘해야 재귀를 뚫을 수 있고, 재귀를 뚫어야 DP에 도달


데이터구조&알고리즘

프로그램 = 데이터 구조 + 알고리즘 (Niklaus Wirth)

​ (저장) + (조작/계산)

데이터 구조: 데이터를 다양한 방식으로 저장하고 + 조회, 삽입, 변경, 삭제와 같은 조작 기능을 제공한다.

데이터 구조가 왜 중요한가?

문제를 효율적으로 풀기 위해서!

서로 다른 용도의 물통(비커, 스포이드 ...)을 생각해보면 이해하기 쉽다

시퀀스형은 순서가 있으니까 순회(순서대로 돌 수 있다) 가능함!

영어로는 iterable


입력과 출력

  1. 입력 활용 예시(input)

    • input()은 사용자의 입력 한 줄을 문자열로 받는 함수
    • 컴퓨터가 프로그램에 대한 입력 제어권을 사용자에게 넘김
    • 기술면접 질문예시: 여러분이 브라우저에 네이버.com 을 검색하는 순간 일어나는 일들을 설명해 보세요.
  2. 출력 활용 예시(print)

    • print()는 데이터를 출력할 수 있는 함수이며, 자동적으로 줄 바꿈 발생
    • print 의 return 값은 None. 아무것도 리턴을 하진 않습니다
    • 콤마(,)를 이용해 여러 인자를 넣으면 공백을 기준으로 출력
    • end, sep 옵션을 사용하여 출력 조작하기

실제 코딩테스트는 프로그래머스에서 환경을 빌려오기 때문에, 백준이나 SWEA 가 아닌 프로그래머스에 적응할 필요가 있다