| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
- 파이썬
- 알고리즘
- 안드로이드
- til
- c++ 코테
- 파이썬 코테
- Python
- 플러터
- 오블완
- 티스토리챌린지
- DP
- 뷰
- C++
- 코테
- react
- ML
- flutter getx
- 항해99
- 코테 파이썬
- 99클럽
- vue
- 코딩테스트 준비
- 개발자 취업
- 코딩테스트준비
- 라라벨
- 개발자취업
- Flutter
- 코딩테스트
- Laravel
- 백준
- Today
- Total
잡다로그
[JS/코테] 자바스크립트 기초 문법 정리 본문
새로운 언어로 코테를 시작하며..
Python으로 코테 준비를 시작한 것은 잘한 선택이었다. 자료도 많고, 무엇보다 이해하기 쉬웠다. 알고리즘 자체를 공부하는 데 도움이 되었다. 그러나 프론트 직무를 준비하게 되면서, JS로 코테를 봐야 하고 또 유리할 수 있음을 알게 되었다.
그래서 최대한 JS로, 자료가 부족하다면 Python과 병행하여 공부해보려고 한다.
들어가기 앞서, VScode에서 Javascript를 실행하기 위해서는 1) node.js 설치 2) Code Runner 확장프로그램 설치 가 필요하다.
js 파일 실행 단축키는 Ctrl+Alt+N 이다.
세미콜론
자바스크립트에서는 라인마다 세미콜론(;)을 붙여줘도 되고, 안붙여줘도 인터프리터 과정에서 자동으로 구문 구분을 해야 하는 곳에 세미콜론을 삽입해준다(ASI). 그러나 예외 경우 오류가 발생할 수 있어서 기본 규칙은 세미콜론을 붙이는 것이다.
변수형
- var : 변경 가능. 선언 단계와 초기화 단계가 한번에 이루어진다. 따라서 변수 선언문 이전에 변수를 참조해도 오류가 발생하지 않고, undefined를 반환한다.
- let : 변경 가능. 선언 단계와 초기화 단계가 분리되어 진행. 변수 선언문 이전에 변수를 참조하면 ReferenceError 가 발생한다.
- const : 변경 불가능. 상수나 객체 등 거의 재할당을 하지 않는 경우 기본적으로 사용한다.
자료형
①숫자 ②문자열 ③불리언 ④심볼 ⑤undefined ⑥객체
배열 순회
a = [1, 3, 45, 2, 10]
a.forEach((e, i) => { // e는 요소, i는 인덱스
console.log(e, i)
})
간편한 배열 선언 방법
let arr = Array(50).fill(0)
// 이차원배열
let arr2 = Array(3).fill().map(e => Array(5).fill(0))
원소 스와프 (구조분해)
[arr[1], arr[3]] = [[arr[3], arr[1]]]
문자열 구분
const str = "Hello World!";
const ret = str.split(" ")
console.log(ret) // ['Hello','World'] 반환
문자열 연결
const ret = ['Hello', 'World']
ret.join('') // HelloWorld 반환
ret.join(' ') // Hello World 반환
ret.join(' apple ') // Hello apple World 반환
join 함수 외에도 +연산자, concat 함수 를 활용해 문자열을 연결할 수 있다.
정렬
let numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
numbers = numbers.sort((a, b) => a - b)
// 내림차순
numbers = numbers.sort((a, b) => (a - b) - 1)
필터
const numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
// 필터링
const ret = numbers.filter(e => e % 2 == 0)
map: 새로운 배열을 반환할 때 쓰는 함수.
const ret2 = numbers.map(e => e * 2)
reduce: 배열을 합치거나, 배열을 기반으로 값을 만들 때 쓰는 함수
const ret3 = numbers.reduce((total, e) => total + e, 0)
DFS
const graph = {
1: [2, 3], // 1의 자식 노드가 2, 3
2: [4],
3: [4, 5],
4: [],
5: []
};
const dfs = (here, visited = new Set()) => {
if (visited.has(here)) return
visited.add(here)
graph[here].forEach(e => dfs(e, visited))
}
dfs(1);
이진탐색
정렬된 배열에 대해 빠르게 탐색하는 알고리즘
const a = [1, 2, 3, 4, 5, 6, 7, 8]
const bs = () => {
let lo = 0
let hi = a.length - 1
const target = 3
while (lo <= hi) {
let mid = Meth.floor((lo + hi) / 2)
if (a[mid] == target) {
console.log(target) // target을 찾았을 때
return
} else if (a[mid] > target) {
hi = mid - 1
} else {
lo = mid + 1
}
}
console.log(-1) // target이 없을 때
return -1
}
bs()
피보나치 수열
DP문제의 대표적인 예제
const fibo = (idx, memo = {}) => {
if (idx <= 2) return 1
if (idx in memo) return memo[idx]
memo[idx] = fibo(idx - 1, memo) + fibo(idx - 2, memo)
return
}
const retFibo = fibo(10)
이외에도
find
findIndex
includes
substring
slice
Object.keys
Object.values
Object.entries
Math.round
Math.ceil
Math.floor
Math.abs
를 외워두자 !
출처:
https://velog.io/@bathingape/JavaScript-var-let-const-%EC%B0%A8%EC%9D%B4%EC%A0%90
var, let, const 차이점
JavaScript에서 변수 선언 방식인 `var, let, const` 의 차이점에 대해 알아보자. 1. 변수 선언 방식 우선, `var`는 변수 선언 방식에 있어서 큰 단점을 가지고 있다. 변수를 한 번 더 선언했음에도 불구하
velog.io
https://tcpschool.com/javascript/js_datatype_basic
코딩교육 티씨피스쿨
4차산업혁명, 코딩교육, 소프트웨어교육, 코딩기초, SW코딩, 기초코딩부터 자바 파이썬 등
tcpschool.com
https://www.youtube.com/watch?v=MlvZ2IufTFI
'Algorithm' 카테고리의 다른 글
| [JS/코테] 코테용 기초 문법 - 배열, BFS 등 (0) | 2024.05.24 |
|---|---|
| [JS/코테] 자바스크립트 코테 표준입력 (0) | 2024.05.24 |
| [Python/코테] 백준 13413 오셀로 재배치 (0) | 2024.04.02 |
| [Python/코테] 백준 12933 오리 (0) | 2024.04.02 |
| [Python/코테] 백준 20922 겹치는 건 싫어 (0) | 2024.04.02 |