본문 바로가기
개인공부/패스트캠퍼스 알고리즘

패스트캠퍼스 JavaScript 코딩테스트 강의 4주차

by 뭉지야 2023. 5. 9.
728x90

패스트캠퍼스 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

728x90