avatar
swmg03

백준 JS 풀기 - 입출력과 사칙연산

이제는 더 이상 물러날 곳이 없다
JSJavaScript백준코테
Jul 18
·
6 min read

책으로만 공부하는 습관을 바꾸기 위해 백준 단계별로 풀기를 같이 할 것이다

일단 기본 문법을 하고 바로 백준 풀어야지 풀면서 모르는 걸 추가로 공부해 봐야겠다

해보면서 방향을 수정하다 보면 맞는 공부 방법이 나올 것 같다

https://www.acmicpc.net/step/1 이 링크로 들어가면 단계별로 풀 수 있습니다^-^


(2557) Hello World! 출력하기

console.log("Hello World!"); 

(1000) 두 정수 입력 받고, 합 출력하기

const fs = require("fs");

const input = fs.readFileSync("/dev/stdin").toString().split(' ');

const A = parseInt(input[0]);
const B = parseInt(input[1]);

console.log(A + B);

입력받아야 하므로 위 2줄을 입력해야 한다.

fs (file system) 모듈 불러오기

입력값을 읽어오기 위해서는 file system을 요구해야함

const fs = require("fs");

파일 읽어오기 (동기)

fs.readFileSync('/dev/stdin').toString()

백준에서 JS로 문제풀기 위해서는 이렇게 해야한다고 한다

/def/stdin 이 경로 외워야한다

readFile(비동기) / readFileSync(동기): 코드를 순차적으로 실행하기 위해 readFileSync를 이용

  • 동기식
    순차적으로 일을 처리한다.
    특정 작업이 수행중이라면 다음 작업을 받지 않고 해당 작업이 끝날떄까지 기다린다

  • 비동기식
    동기식과 다르게 들어오는 모든 일을 우선 받아두고 끝났다는 이벤트가 전달되면 해당 이벤트를 처리한다

    비동기 키워드들 : Callback, Promise, Promise.all, async , await

파일 읽어오기 (split)

문자열을 일정한 구분자로 잘라서 배열로 지정

코드에서는 공백을 기준으로 나누어 배열로 만들었다

문제에서 두 정수라고 했으므로 parseInt

split 메서드에 의해 문자열 배열로 변환되기 때문에 input[0]으로 접근

const A = parseInt(input[0]); 
const B = parseInt(input[1]);

(1001) 두 정수 입력 받고, 차 출력하기

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().split(" ");

const A = parseInt(input[0]);
const B = parseInt(input[1]);

console.log(A - B);

(10998) 두 정수 입력 받고, 곱 출력하기

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().split(" ");

const A = parseInt(input[0]);
const B = parseInt(input[1]);

console.log(A * B);

(1008) 두 정수 입력 받고, 나누기 출력하기

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().split(" ");

const A = parseInt(input[0]);
const B = parseInt(input[1]);

console.log(A / B);

(10869) 두 자연수 입력 받고 더하기, 빼기, 곱하기, 나누기, 나머지 출력하기

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().split(" ");

const A = parseInt(input[0]);
const B = parseInt(input[1]);

console.log(A + B);
console.log(A - B);
console.log(A * B);
console.log(parseInt(A / B));
console.log(A % B);

JS에서 몫만 구하기 위해서는 parseInt(A / B) 이렇게 해야한다

(10926) 이미 존재하는 아이디일때 놀람 출력

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim();
console.log(`${input}??!`);

trim()
문자열 양 끝의 공백을 제거한 문자열을 반환
공백이 없어도 예외가 발생하지 않고 새 문자열이 반환(즉 복사본)

->한 쪽 긑의 공백만 제거한 문자열을 반환하려면 trimStart(), trimEnd() 사용하기

(18108) 불기 연도를 서기 연도로 변환하기

const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().split(" ");

const A = parseInt(input[0]);
console.log(A - 543);

(10430) 세 수가 주어졌을때, 4가지 값을 구하는 프로그램

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split(' ');
const a = parseInt(input[0]);
const b = parseInt(input[1]);
const c = parseInt(input[2]);

console.log((a+b)%c);
console.log( ((a%c)+(b%c))%c );
console.log( (a*b%c) );
console.log( ((a%c)*(b%c))%c );

(2588) 곱셈

const fs = require('fs');
const input1 = fs.readFileSync('/dev/stdin').toString().split('\n');
const a = Number(input1[0]);  // 첫 번째 줄
const b = input1[1];  // 두 번째 줄 각 문자

const b1 = a * Number(b[2]); //일의자리
const b2 = a * Number(b[1]); //십의 자리 
const b3 = a * Number(b[0]); //백의 자리 
const total = a * Number(b); //전체 자리 곱

console.log(b1);
console.log(b2);
console.log(b3);
console.log(total);

Number()

숫자로 표현하는 객체이다

문자열을 숫자로 변환할때 많이 사용

오로지 숫자 타입의 문자열만 Number 타입으로 변환한다

소수점을 표시 할 수 있다

(11382) 꼬마 정민

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().split(' ');
const a = parseInt(input[0]);
const b = parseInt(input[1]);
const c = parseInt(input[2]);

console.log(a + b + c);

(10171) 고양이

console.log(`\\    /\\
 )  ( ')
(  /  )
 \\(__)|`)

백틱을 사용하면 여러 줄을 한 번에 출력할 수 있다

백 슬래시는 2번 입력해야 출력된다

  • \n 줄바꿈

  • \\ 백슬래시

  • \' 작은 따옴표

  • \" 큰 따옴표


(10172) 개

console.log(`|\\_/|
|q p|   /}
( 0 )"""\\
|"^"\`    |
||_/=\\\\__|`)

until-877


- 컬렉션 아티클






휴학생