본문 바로가기
개인공부/패스트캠퍼스 알고리즘

패스트캠퍼스 JavaScript 코딩테스트 강의 1주차

by 뭉지야 2023. 4. 18.
728x90

패스트캠퍼스 JavaScript 코딩테스트 강의 1주차

(JavaScript 코딩테스트 131개 예제 & CS지식으로 끝내기)

 

#코딩테스트란?
-it관련 기업/기관에서 선발 목적으로 시행하는 일종의 문제풀이 시험이다.
-다수의 지원자를 대상으로 공개 채용을 하는 기업에서는 코딩테스트를 주로 이용한다.

#문제에 따른 코딩테스트 분류 - 알고리즘 코딩 테스트
-정해진 시간(일반적으로 5시간 이내)에 몇 개의 알고리즘 문제를 제시한다.
-적절한 알고리즘을 활용한 문제를 해결할수있는 능력을 평가한다.

#문제에 따른 코딩테스트 분류 - 개별 과제 코딩테스트
-하나의 완성된 프로그램을 개발하는 것을 목표로 하는 시험이다.
-짧게는 몇 시간부터 길면 2주 이상의 시간을 부여한다.
-특정한 회사에서 실제로 사용하는 언어 혹은 프레임워크를 활용하도록 요구하기도 한다.

#온라인 개발 환경
-코딩테스트를 공부할때는 온라인상에서 제공되는 개발 환경을 사용할 수 있다.
-본 강의에서는 https://replit.com/ 웹 사이트를 기본으로 사용한다.

#시험 환경 따른 코딩 테스트 분류 - 온라인 코딩 테스트
-특정한 웹 사이트에서 문제를 읽고, 정답 코드를 제출하도록 하는 코딩 테스트다.
-대체로 공개 채용에서는 혼자 힘으로만 문제를 풀도록 하며 표절 검사를 진행한다.
-일반적으로 인터넷 검색을 허용하지만, 단순 검색으로 솔루션이 나오지 않는 문제를 출제한다.

#시험 환경 따른 코딩 테스트 분류 - 오프라인 코딩 테스트
-특정한 기업/기관의 시험장에 방문하여 치르는 코딩 테스트다.
-인터넷 검색 허용 여부는 기관마다 다르다.
-오프라인 알고리즘 코딩 테스트의 경우, 대체로 기관에서 제공하는 컴퓨터를 이용한다.

#자신만의 소스코드 관리하기
-알고리즘 코딩 테스트를 준비하며 자신만의 코드 템플릿을 만드는 것이 유리하다.
-특히 대표적인 알고리즘(정렬, 최단 경로 등)의 기본형에 대하여 미리 코드를 구현해놓자.
-자신의 코드를 라이브러리화하여 깃허브에서 관리하는 것을 추천한다.

#IT 기업 코딩 테스트 최신 출제 경향
-대부분의 IT대기업은 공개 채용 과정에서 알고리즘 코딩 테스트를 시행하고 있다.
-응시생들에게 2~5시간가량의 시간을 주어 여러 개의 정해진 알고리즘 문제들을 풀도록 한다.
-구현, DFS/BFS(탐색), 탐욕 알고리즘 유형이 출제 빈도가 높은 편이다.

#코딩 테스트를 준비하는 방법
1. 적절한 프로그래밍 언어를 선택하여 문법 공부하기: python/C++/ java/ javascript
2. 알고리즘 유형별로 이론 및 핵심 문제를 10개이상 풀어보기
-대표적인 알고리즘 유형: 정렬, DFS/BFS, 구현, 완전 탐색, 탐욕 알고리즘
3. 원하는 기업의 기출(혹은 유사한) 문제 풀기

#시간 복잡도
-시간 복잡도는 알고리즘의 성능을 나타내는 척도이다.
-시간 복잡도: 특정한 크기의 입력에 대하여 알고리즘의 수행 시간 분석
-동일한 기능을 수행하는 알고리즘이 있다면, 일반적으로 복잡도가 낮을수록 우수하다.
-시간 복잡도가 낮을수록 빠르다. => 알고리즘이 빠르게 돌아가서 결과가 금방 나온다.
-시간 복잡도가 높다 => 알고리즘이 돌아가는데 시간이 오래걸린다.

#빅오 표기법(Big-O Notation)
-가장 빠르게 증가하는 항만을 고려하는 표기법이다.!!!!!
-함수의 상한을 나타낸다.
-예를 들어 연산 횟수가 3N3승 + 5N2승 + 1000000인 알고리즘이 있다고 하자.
-N이 증가함에 따라서, 3N3승을 제외한 다른 항의 영향력은 작아진다.
-Big-O 표기법에서는 차수가 가장 큰 항에서 계수를 제외하여 O(N3승)으로 표현된다.

# 시간복잡도 예시

-N개의 데이터의 합을 계산하는 프로그램 예제

let array = [3, 5, 1, 2, 4];  //5개의 데이터(N = 5)
let summary = 0; // 합계를 저장할 변수

//모든 데이터를 하나씩 확인하며 합계를 계산
for(let i=0; i < array.length; i++) {
  summary += array[i];
 }
 
 //결과를 출력
 console.log(summary);

-수행 시간은 데이터의 개수 N에 비례할 것임을 예측할 수 있다.

-시간복잡도: O(N)

 


 "본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다."

https://fastcampus.co.kr/dev_online_upjscodingtest#detail

 

#패스트캠퍼스 #패캠 #FASTCAMPUS #자바 #자바스크립트 #파이썬 #코딩테스트 #패스트캠퍼스후기 #코딩교육 #코딩자격증

 

728x90