일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- reduce
- 야놀자 fe 1기
- Where
- Filter
- github
- promise 비동기처리
- 국비지원취업
- 퍼블리셔 이직후기
- 프론트엔드부트캠프후기
- 성능개선
- 프론트엔드개발자
- 리액트오류
- Firebase
- 국비지원
- react hook
- js CRUD
- sqld 자격증 시험
- 패스트캠퍼스
- 부트캠프
- sqld 55회
- foreach
- 패스트캠퍼스 부트캠프
- firebase rules
- TypeScript
- 2024 sqld
- css 꿀팁
- 야놀자x패스트캠퍼스
- map
- git
- 부트캠프 취업후기
- Today
- Total
Tech is created to fix problem
[알고리즘] 코딩테스트 JavaScript 핵심 문법 본문
알고리즘 코딩 테스트 문제의 입출력 형식
예시) N명의 학생의 성적 데이터가 주어졌을 때, 내림차순 정렬한 결과를 출력해라
입력 형식) 첫째 줄에는 학생의 수 N이 자연수로 주어지고, 둘째 줄에 공백을 기준으로 하여 N명의 학생에 대한 성적이 정수 형태로 주어진다. (2 <= N <= 1000 , = <= 성적 <= 100)
출력 형식) N명의 학생의 성적을 내림차순 정렬한 결과를 첫째 줄에 공백을
기준으로 구분하여 출력하여라.
일반적인 알고리즘 문제를 풀 때, 표준 출력으로 console.log()를 이용한다.
// 단순히 문자열 출력
console.log('Hello World!');
// 템플릿 리터럴을 사용해서 문자열 내부에 변수 포함
result = 35;
console.log(`정답은 ${result} 입니다.`);
기본 사칙 연산
a = 7;
b = 3;
console.log(a + b);
console.log(a - b);
console.log(a * b);
console.log(parseInt(a / b));
console.log(a % b);
빠른 출력
- JavaScript로 코딩 테스트 문제를 풀 때, 출력 과정만으로 시간 초과를 받을 때가 있다.
- 출력 시간을 단축하기 위해 다음과 같은 방법을 유용하게 사용할 수 있다.
let answer = '';
/*
여러 출력 결과를 한 줄에 하나씩 출력할 때 매번 console.log() 를 실행하지 않고, 하나의 문자열에 결과를 저장해서
한꺼번에 출력하는 것이 대개 더 빠르게 수행된다.
*/
for(let i = 1; i <= 100; i ++){
answer += i + '\n';
}
console.log(answer);
fs 모듈
- 입력 데이터가 텍스트 파일 형태로 주어지는 경우, 파일 시스템 모듈을 사용한다.
- 예를 들어 /dev/stdin 파일에 적힌 텍스트를 읽어오는 경우, 다음과 같이 코드를 작성한다.
- 기능 : 전체 텍스트를 읽어 온 뒤에, 줄바꿈 기호를 기준으로 구분하여 리스트로 변환하기
// readline 모듈보다는 fs를 이용해 파일 전체를 읽어 들여 처리하기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
console.log(input);
//input.txt
1
2
3
//출력 예시
[1,2,3]
fs 사용할 수 없는 경우 readline 모듈 사용 추천
흔히 아는 한 줄씩 입력을 받아서, 처리하여 정답을 출력할 때는 readline 모듈을 사용할 수 있다.
const rl = require('readline').createInterface({
input : process.stdin,
output : process.stdout
});
let input = [];
rl.on('line', function(line){
// 콘솔 입력 창에서 줄바꿈(Enter)을 입력할 때마다 호출
input.push(line);
}).on('close', function(){
// 콘솔 입력 창에서 Ctrl + C 혹은 Ctrl + D를 입려갛면 호출(입력의 종료)
console.log(input);
process.exit();
});
조건에 따라서 프로그램의 흐름을 결정할 때 사용할 수 있는 문법이다.
if (condition1)
statement1
else if (condition2)
statement2
else if (condition3)
statement3
...
else
statementN
조건에 따라서 특정한 코드를 반복하고자 할 때 사용할 수 있는 코드이다.
let summary = 0;
for (let i = 1; i <= 100; i++) {
summary += i;
}
console.log(summary);
while (조건문) {
// 실행되는 코드 부분
}
Number와 String 형태 변환
- 수(number) 데이터와 문자열(string) 데이터간의 상호 변환이 필요하다
// Int -> String
let a = "777";
let b = Number(a);
console.log(b); // 777
// String -> Int
let a = 777;
let b = String(a);
console.log(b); // "777"
Array.prototype.reduce()
- 배열의 모든 원소에 대해 특정한 연산을 순차적으로 적용할 때 reduce()를 사용한다.
let data = [5, 2, 9, 8, 4];
let minValue = data.reduce((a, b) => Math.min(a, b));
console.log(minValue); // 2
1) 5와 2 비교 -> 2
2) 2와 9 비교 -> 2
3) 2와 8 비교 -> 2
4) 2와 4 비교 -> 2
배열 초기화 방법
// 직접 값을 설정하여 초기화
let arr = [8, 1, 4, 5, 7];
// 길이가 5이고 모든 원소의 값이 0인 배열 초기화
let arr = new Array(5).fill(0);
집합 자료형
- 특정한 원소의 등장 여부를 파악할 때 집합 자료형을 효과적으로 사용할 수 있다.
let mySet = new Set(); // 집합 객체 생성
mySet.add(3);
mySet.add(5);
mySet.add(7);
mySet.add(3);
console.log(`원소의 개수 : ${mySet.size}`);
console.log(`원소 7을 포함하고 있는가? ${mySet.has(7)}`);
// 원소 5 제거
mySet.delete(5);
// 원소를 하나씩 출력
for (let item of mySet) console.log(item);
소수점 아래 특정 자리에서 반올림
-> 실수를 출력할 때 소수점 아래 특정 자리에서 반올림할 수 있다.
// 소수점 둘째자리까지 출력
let x = 123.456
console.log(x.toFixed(2));
이스케이프 시퀀스(Escape Sequence)
- 예약 문자 혹은 특수 문자를 출력하기 위하여 이스케이프 시퀀스를 사용할 수 있다.
시퀀스 | 문자 |
\t | 탭 |
\\ | 역 슬래시 |
\" | 큰 따옴표 |
\' | 작은 따옴표 |
ex) console.log("그는 \"비범함\"을 보였다."); -> 그는 "비범함"을 보였다.
'알고리즘' 카테고리의 다른 글
입출력 문제풀이 (0) | 2023.09.26 |
---|---|
[프로그래머스 Lv.1] 기사단원의 무기 약수 구하기 for 문 (0) | 2023.09.03 |
[프로그래머스 Lv.1] 폰켓몬 중복되는 배열 Set (0) | 2023.09.02 |