1번 몇시간 했더라?
지용이는 항해에서 한 주 동안 공부 기록을 남길 알고리즘을 만들어보기로 결심했다.
항해의 체크인 페이지에는 몇가지 조건이 있는데 이를 만족하는 알고리즘을 만들어보자.
체크인과 체크아웃은 항상 정시에 진행한 것으로 가정한다.
체크아웃을 할 때 익일 시간은 24+a 로 계산한다. 즉 새벽 2시는 24+2 인 26으로 표기한다.
체크인 페이지는 체크아웃이 새벽 5시 정각이나 새벽 5시를 넘어가면 체크아웃을 깜빡한 것으로 간주한다.
따라서 새벽 5시가 넘어가 체크아웃을 하게 되면 자동으로 체크아웃을 오후 9시(21시)로 한 것으로 처리한다.
제한 조건
체크인(checkin)과 체크아웃(checkout)을 진행한 시간이 담긴 배열 두 개가 주어진다.
각 배열에는 월요일부터 일요일까지 체크인/아웃을 한 시간이 담겨있다.
checkin과 checkout 배열의 길이는 각각 7 이다.
입출력 예
| check in | check out | result |
| [9, 9, 8, 8, 7, 8, 9] | [21, 25, 30, 29, 22, 23, 30] | 96 |
| [9, 7, 8, 9, 7, 9, 8] | [23, 22, 26, 26, 29, 27, 22] | 110 |
지정 입력값
| check in | check out | result |
| [9, 9, 9, 9, 7, 9, 8] | [23, 23, 30, 28, 30, 23, 23] | 102 |
나의 코드
var a = [9, 7, 8, 9, 7, 9, 8]
var b = [23, 22, 26, 26, 29, 27, 22]
function solution(a,b) {
let answer = 0;
let number = 0;
let re = 21;
for (let i=0; i < a.length; i++){
if(b[i] >= 29){
number = number+(re-a[i])
}else {
number = number + (b[i]-a[i])
}
}return answer = number
}console.log(solution(a,b))
/*
변수 a 를 만들어 값을 저장한다
변수 b 를 만들어 값을 저장한다
함수 솔루션을 만들고 a와 b의 값을 집어넣는다
변수 answer을 선언하고 0을 넣어 저장한다
변수 number를 선언하고 0을 넣어 저장한다
변수 re를 선언하고 21을 저장해둔다
반복문을 돌려 i는 0부터 시작해서 i는 a의 길이인 7 까지 반복하게된다
만약 b를 반복문을돌려 29 보다 같거나 큰숫자가 있다면
넘버는 re의 값인 21이랑 b를 반복문을돌려
위조건문에 해당하는 번호를 a[i]에서 찾아 빼준 값을 더하게된다
만약 b를 반복문을돌려 29보다 작다면
넘버는 반복문을 돌린 값들을 저장하는데 저장되어지는 값은
b[0]-a[0],b[1]-a[1]같이 각 배열에 숫자만큼 증가하여 29보다 작은숫자들을 더하게된다
반환되는 asnwer는 number와 같은값이 저장되게된다
*/'프로그램 시작후 각 주차 정리' 카테고리의 다른 글
| 프로그램 4주차 (0) | 2022.04.03 |
|---|---|
| 프로그램 3주차 (0) | 2022.03.27 |
| 프로그램 2주차 (0) | 2022.03.20 |
| 프로그램 알고리즘문제풀이 (0) | 2022.03.18 |
| 항해 99 항해 1주차 (0) | 2022.03.13 |