알고리즘을 위한 자바스크립트 문법

hojoon·2023년 3월 20일
0

코딩테스트

목록 보기
2/5

알고리즘 문제에서는 적절한(약속된) 입출력 양식이 주어진다.
1. 첫번째 단계에서는 데이터를 입력 받거나 생성하는 것
2. 이후에 적절한 알고리즘을 사용하여 도출된 정답을 정확한 형식으로 출력한다.

N명의 학생의 성적 데이터가 주어졌을 때, 내림차순 정렬한 결과를 출력하여라.

  • 입력형식 ) 첫째 줄에는 학생의 수 n, 둘째 줄에 공백을 기준으로 하여 n명의 학생에대한 성적이 정수형태로 주어진다.(2 <= n <=1,000, 0<=성적 <= 100)
  • 출력 형식 ) n명의 학생의 성적을 내림차순 정렬한 결과를 첫째 줄에 공백을 기준으로 구분하여 출력하여라

문제에 주어진 형식에 바르게 맞추는것이 중요하다.

알고리즘을 아무리 잘짰더라도 오답 판정을 받는다.

다양한 사칙연산

a=7;
b=3;
console.log(parseInt(a/b)) //몫만 챙기기
console.log(a%b) //나머지만

-자바스크립트로 코딩 테스트 문제를 풀 때, 출력 과정만으로 시간 초과를 받을 때가 있다.

  • 출력 시간을 단축하기 위해 다음과 같은 방법을 유용하게 사용할 수 있다.
let answer = '';

for(let i = 1 ; i<=100; i++) {
  answer += i + '\n' ; //문자열로 변환하여 기록
}

console.log(answer);
  • 입력 데이터가 텍스트 파일 형태로 주어지는 경우, 파일 시스템 모듈을 사용한다.
  • 예를 들어 /dev/stdin 파일에 적힌 텍스트를 읽어오는 경우, 다음과 같이 코드를 작성한다.
  • 기능: 전체 텍스트를 읽어 온 뒤에, 줄바꿈 기호를 기준으로 구분하여 리스트로 변환하기
//readline 모듈보다는 fs를 이용해 파일 전체를 읽어 들여 처리하기
let fs - require('fs');
let input = fs.readFileSync('dev/stdin').toString().split('\n');
//let input = fs.readFileSync('input.txt').toString().split('\n');

console.log(input);

  • 한 줄씩 입력을 받아서, 처리하여 정답을 출력할 때는 readline 모듈을 사용할 수 있다.
const rl = require('readline').createInterface({
  input:process.stdin
  output:process.stdout
});
let input = [];
rl.on('close', function(line){
  //콘솔 입력 창에서 줄바꿈(엔터)를 입력할 때 마다 호출
  input.push(line);
}).on('close',function(){
  //콘솔 입력 창에서 ctrl + c , ctrl + d를 입력한 호출(입력의 종료)
  console.log(input);
  process.exit();
})

이렇게 한줄 한줄 입력할때마다 함수가 실행됐고 입력 종료를 하면 한줄에 다 나옴

Javascript - 조건문

  • 조건에 따라서 프로그램의 흐름을 결정할 때 사용할 수 있는 문법이다.

Javascript - 반복문

  • 조건에 따라서 특정한 코드를 반복하고자 할 때 사용할 수 있는 코드다.

Javascript - While반복문

  • 조건에 따라서 특정한 코드를 반복하고자 할 때 사용할 수 있는 코드다.

Number와 String 형태 변환

let a = "777";
let b = Number(a)

let a = 777;
let b = String(a);

Array.prototype.reduce()

  • 배열의 모든 원소에 대해 특정한 연산을 순차적으로 적용할 때 reduce()를 사용한다.
let data = [5,2,9,8,5];
//minvalue구하기 (작은 값)
let minValue = data.reduce((a,b) => Math.min(a,b))
console.log(minValue) // 2

//원소의 합계 구하기
let summary = data.redue((a,b) => a+b);
console.log(summary) // 28 

배열 초기화

let arr = [1,2,3,4,5]

//모든 원소의 값이 0인 배열 초기화
let arr = new Araay(5).fill(0);

집합 자료형

  • 특정한 원소의 등장 여부를 파악할 때 집합 자료형을 효과적으로 사용할 수 있다.
let mySet = new Set();
mySet.add(3);
mySet.add(5);
mySet.add(7);
mySet.add(3);
//중복된 값은 추가하지 않음.

포함하는지 여부는? 
mySet.has(7);
원소 제거 
mySet.delete(5);

//원소를 하나씩 출력
for(let item of mySet) console.log(item)

소주점 아래 특정 자리에서 반올림

  • 실수를 출력할 때 소수점 아래 특정 자리에서 반올림할 수 있다.
let x = 123.456
console.log(x.toFixed(2)); //123.46

이스케이프 시퀀스

예약 문자 혹은 특수 문자를 출력하기 위하여 이스케이프 시퀀스를 사용할 수 있다.

  • ₩t 탭
  • ₩₩ 역슬래시
  • ₩" 큰 따옴표
  • ₩' 작은 따옴표
profile
프론트? 백? 초보 개발자의 기록 공간

0개의 댓글