본문 바로가기

백준/JavaScript

[JS] 백준 조건문 - 첫 번째 이야기

728x90

 

이제야 좀 여유가 생겼다...

또 다시 바빠지기 전에 오늘은 좀 일찍 문제를 풀어보려고 한다 ㅎㅎ

라고 하고 한 문제 풀자마자 나갈 일이 생겼다...

그래도 저녁 먹기 전에는 얼른 끝내야지 ㅎㅎ

 

어제 입출력과 사칙연산 문제를 다 풀었다~~~(짝짝)

 

 

 

이번에는 조건문을 풀 차례다.

 

문제

https://www.acmicpc.net/step/4

 

조건문 단계

점이 어느 사분면에 있는지 알아내는 문제

www.acmicpc.net

 

 

 

오늘의 첫 번째 이야기는~~~~

 

문제 1330번

https://www.acmicpc.net/problem/1330

 

1330번: 두 수 비교하기

두 정수 A와 B가 주어졌을 때, A와 B를 비교하는 프로그램을 작성하시오.

www.acmicpc.net

 

정수 A, B가 주어졌을 때 두 수를 비교하는 문제이다. 공백을 기준으로 입력받은 후 비교해주면 되겠다

 

 

const fs = require('fs');

//백준에 제출할 때
const readFileSyncAdress = '/dev/stdin';

//테스트할 때
//const readFileSyncAdress = 'input.txt';//''로 묶어주는 거 잊지말자...

const input = fs.readFileSync(readFileSyncAdress).toString().trim().split(' ').map(Number);

let A = input[0];
let B = input[1];

if(A>B){
    console.log(">");
}else if(A<B){
    console.log("<")
}else{
    console.log("==");
}

 

 

 

자바스크립트에서 조건문은 C++, 자바랑 똑같은 것 같다 ㅎㅎ

 

 

문제 9498번

https://www.acmicpc.net/problem/9498

 

9498번: 시험 성적

시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

 

(ㅎㅎ 이번에 성적이 나왔는데 잘 나왔다(뿌듯) ㅎㅎ)

아 문제 풀어야지

 

이번에는 점수를 받아서 A,B,C,D,F로 성적을 출력해주는 문제였다.

그래서 입력을 받아주고 if문을 이용하여 비교를 해주어야한다.

자바스크립트는  '90<=input<=100' 이런 식으로 비교를 할 수 있을지 궁금해서 작성해보았다.

 

테스트해봤더니 A만 나온다..?

역시... '90<=input&&input<=100' 이런 식으로 비교를 해야되나보다.

 

수정수정

const fs = require('fs');

//백준에 제출할 때
const readFileSyncAdress = '/dev/stdin';

//테스트할 때
//const readFileSyncAdress = 'input.txt';//''로 묶어주는 거 잊지말자...

const input = fs.readFileSync(readFileSyncAdress).toString();

if(90<=input&&input<=100){
    console.log("A");
}else if(80<=input&&input<=89){
    console.log("B")
}else if(70<=input&&input<=79){
    console.log("C");
}else if(60<=input&&input<=69){
    console.log("D");
}else{
    console.log("F");
}

 

그렇게 수정하니 잘된다 ㅎㅎ

 

 

 

문제 2753번

https://www.acmicpc.net/problem/2753

 

2753번: 윤년

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 프로그램을 작성하시오. 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때이다. 예를 들어, 2012년은 4의 배수이면서

www.acmicpc.net

 

연도가 주어졌을 때, 윤년이면 1, 아니면 0을 출력하는 문제이다.

 

여기서 윤년은 연도가 4의 배수이면서, 100의 배수가 아닐 때 또는 400의 배수일 때라고 한다.

그래서 어떻게 조건문을 사용할까 고민하다가 2가지 방법으로 작성해보았다.

const fs = require('fs');

//백준에 제출할 때
const readFileSyncAdress = '/dev/stdin';

//테스트할 때
//const readFileSyncAdress = 'input.txt';//''로 묶어주는 거 잊지말자...

const input = fs.readFileSync(readFileSyncAdress).toString();

if(input%4==0){
    if(input%100!=0||input%400==0){
        console.log('1');
    } else{
        console.log('0');
    }
} else{
    console.log('0');
}

이 코드는 4의 배수이면 그 다음으로 100의 배수가 아니거나 400의 배수인지 알아낸다. 

 

 

 

const fs = require('fs');

//백준에 제출할 때
const readFileSyncAdress = '/dev/stdin';

//테스트할 때
//const readFileSyncAdress = 'input.txt';//''로 묶어주는 거 잊지말자...

const input = fs.readFileSync(readFileSyncAdress).toString();

if(input%4==0&&(input%100!=0||input%400==0)){
    console.log('1');
} else{
    console.log('0');
}

이 코드는 4의 배수이고, 100의 배수가 아니거나 400의 배수인지 한번에 조건을 확인한다.

 

 

 

 

 

 

음... 거실에서 밥이 다 됐다는 소리가 들려오는구만 ㅎㅎ

 

오늘은 여기까지 해야될 것 같다.

이번에는 꼭 일찍자야지...

 

안녕...

 

 

728x90