패스트캠퍼스 JavaScript 코딩테스트 강의 4주차
패스트캠퍼스 JavaScript 코딩테스트 강의 4주차
(JavaScript 코딩테스트 131개 예제 & CS지식으로 끝내기)
4. javaScript 조건문 문제 풀이
# 시험성적
https://www.acmicpc.net/problem/9498
9498번: 시험 성적
시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
# 문제 풀이 핵심 아이디어
- A학점: 90점이상 100점이하
- B학점: 80점이상 89점 이하
- C학점: 70점이상 79점이하
- D학점: 60점이상 69점이하
- F학점: 59점이하
- javaScript를 이용해 조건 문법을 사용할수 있다.
/*
condition: 참 혹은 거짓을 나타내는 조건문
statement1: condition1이 참일때 실행되는 구문
statement2: condition1이 거짓이고, condition2가 참일때 실행되는 구문
statement3: condition1과 condition2가 거짓이고, condition3이 참일때 실행되는 구문
statementN: 앞의 모든 조건문이 거짓일때 실행되는 구문
*/
if (condition1)
statement1
else if (condition2)
statement2
else if (condition3)
statement3
...
else
statementN
# 정답코드 예시
//fs 모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
data = Number(input[0]);
function check(a) {
if(90 <= a && a <= 100) console.log('A');
else if(80 <= a && a <= 89) console.log('B');
else if(70 <= a && a <= 79) console.log('C');
else if(60 <= a && a <= 69) console.log('D');
else console.log('F');
}
check(data);
# 알람시계
https://www.acmicpc.net/problem/2884
2884번: 알람 시계
상근이는 매일 아침 알람을 듣고 일어난다. 알람을 듣고 바로 일어나면 다행이겠지만, 항상 조금만 더 자려는 마음 때문에 매일 학교를 지각하고 있다. 상근이는 모든 방법을 동원해보았지만,
www.acmicpc.net
# 문제 풀이 핵심 아이디어
1. 현재 시각이 주어졌을때, 45분을 감소시킨다.
2. 0분보다 작아지면, 시(hour)가 1시간 감소한다.
3. 0시보다 작아지면, 시(hour)가 23시로 초기화된다.
# 정답코드 예시
// fs모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let hour = Number(input[0].split(' ')[0]);
let minute = Number(input[0].split(' ')[1]);
if(minute < 45) { //분이 45분 미만이라면
hour -= 1;
minute += 15;
if (hour < 0) hour = 23;
}
else minute -= 45;
console.log(hour + " " + minute);
# 오븐 시계
https://www.acmicpc.net/problem/2525
2525번: 오븐 시계
첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.)
www.acmicpc.net
# 문제 풀이 핵심 아이디어
- 입력: A시 B분
- 걸리는 시간: C분
[문제 해결 방법]
1. 입력으로 주어진 시각을 "분"의 형태로 바꾸기
2. "분"이 주어졌을때, 시각을 알려주는 기능을 작성하기
[예시]
- 입력: (17시 40분 + 80분) = (1060분 + 80분) = 1140분
1. 1140를 1440으로 나눈 나머지를 취하기: 1140분
2. 이때, 60으로 나눈 몫을 시(hour)로 취하기: 19시
3. 이때, 60으로 나눈 나머지를 분(minute)으로 취하기: 0분
# 정답코드 예시
// fs모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let [a, b] = input[0].split(' ').map(Number);
let c = Number(input[1]);
let totalMinute = a * 60 + b + c; // 분의 형태로 바꾸기
totalMinute %= 1440;
let hour = parseInt(totalMinute / 60);
let minute = totalMinute % 60;
console.log(hour + " " + minute);
# 주사위 세개
https://www.acmicpc.net/problem/2480
2480번: 주사위 세개
1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개
www.acmicpc.net
# 문제 풀이 핵심 아이디어
- 주사위를 3개 던진다.
1. 눈금 세 개가 모두 같으면 -> 10000 + (같은 눈금) X 1000원
2. 눈금 두 개가 같으면 -> 1000 + (같은 눈금) X 100원
3. 눈금이 모두 다르면 -> (가장 큰 눈금) X 100원
# 정답코드 예시
// fs모듈을 이용해 파일 전체를 읽어와 문자열로 저장하기
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString().split('\n');
let a = Number(input[0].split(' ')[0]);
let b = Number(input[0].split(' ')[1]);
let c = Number(input[0].split(' ')[2]);
// 세 개의 수가 모두 같은 경우
if(a == b && b == c) console.log(10000 + a * 1000);
// 세 개의 수가 전부 같지는 않지만, 두 개의 수가 같은 경우
else if(a == b) console.log(1000 + a * 100);
else if(a == c) console.log(1000 + a * 100);
else if(b == c) console.log(1000 + b * 100);
// 세 개의 수가 전부 다른 경우
else console.log(Math.max(a, b, c) * 100);
"본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다."
https://fastcampus.co.kr/dev_online_upjscodingtest#detail
UPSKILL : Javascript 코딩테스트 131개 예제 & CS지식으로 끝내기 | 패스트캠퍼스
25시간 대비 과정 / '코테 레전드' 유튜버 강사님께 핵심만 배우고 빠르게 합격하세요.
fastcampus.co.kr