패스트캠퍼스 JavaScript 코딩테스트 강의 4주차
(JavaScript 코딩테스트 131개 예제 & CS지식으로 끝내기)
4. javaScript 조건문 문제 풀이
# 시험성적
https://www.acmicpc.net/problem/9498
# 문제 풀이 핵심 아이디어
- 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
# 문제 풀이 핵심 아이디어
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
# 문제 풀이 핵심 아이디어
- 입력: 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
# 문제 풀이 핵심 아이디어
- 주사위를 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
'개인공부 > 패스트캠퍼스 알고리즘' 카테고리의 다른 글
1강-1. 코딩테스트 알아보기 (0) | 2023.06.21 |
---|---|
패스트캠퍼스 JavaScript 코딩테스트 강의 한 달 후기 (0) | 2023.05.19 |
패스트캠퍼스 JavaScript 코딩테스트 강의 3주차 (0) | 2023.05.06 |
패스트캠퍼스 JavaScript 코딩테스트 강의 2주차 (0) | 2023.04.28 |
패스트캠퍼스 JavaScript 코딩테스트 강의 1주차 (0) | 2023.04.18 |