Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- jsx반복문
- substring()
- useEffect()
- getday()
- 항해99솔직후기 #항해99장점 #항해99단점 #부트캠프추천
- React
- toUpperCase()
- new Date()
- 차집합
- reat if문
- 소수점 올림내림
- repeat()
- filter()
- slice()
- setDate
- useRef()
- Math.floor()
- 3진수
- 교집합
- charAt()
- includes()
- Eventlitener
- sort()
- useState()
- map()
- isNaN()
- Number()
- indexOf()
- parseInt()
- Math.sqrt()
Archives
- Today
- Total
개발자로 전향중
2번. 몇 시간 몇 분 했더라? 본문
현아는 항해에서 한 주 동안 몇 시간 동안 공부했는 지 기록할 수 있는 알고리즘을 만드는데 성공했다. 공부시간을 꼼꼼하게 관리하는 현아는 이번에 분 단위까지 계산할 수 있는 알고리즘을 만들기로 마음을 먹었다.
항해의 체크인 페이지에는 몇가지 조건이 있는데 이를 만족하는 알고리즘을 만들어보자.
•
체크아웃을 할 때 익일 시간은 24+a 로 계산한다. 즉 새벽 2시는 24+2 인 26으로 표기한다.
•
체크인 페이지는 새벽 5시까지 체크아웃이 되어 있지 않으면 체크아웃을 깜빡한 것으로 간주한다.
•
따라서 체크인 시스템은 새벽 5시 정각이나, 새벽 5시를 넘겨서 체크아웃을 하게 되면 자동으로 체크아웃을 오후 9시(21:00)로 한 것으로 처리한다.
제한 조건
•
체크인(checkin)과 체크아웃(checkout)을 진행한 시간이 담긴 배열 두 개가 주어진다.
•
각 배열에는 월요일부터 일요일까지 체크인/아웃을 한 시간이 담겨있다.
•
checkin과 checkout 배열의 길이는 각각 7 이다.
•
result는 반드시 “00시간 00분” 형식의 문자열로 출력해주셔야 합니다.
입출력 예
검색
checkin
checkout
result
["7:51" ,"8:58", "8:56", "8:35", "9:00", "8:46", "8:56"]
["22:24" ,"21:51", "25:30", "29:10", "29:12", "22:15", "21:31"]
“94시간 29분”
지정 입력값
검색
checkin
checkout
result
["8:42", "9:00", "8:50", "8:47", "9:01", "8:51", "8:59"]
["21:42", "23:10", "25:30", "29:10", "23:11", "26:44", "29:26"]
“100시간 7분”
function solution(arr1, arr2){
let answer=0;
let a = 0
let b = 0
let c = 0
let d = 0
for(let i=0;i<arr1.length;i++){
a += Number(arr1[i].split(':')[0])
b += Number(arr1[i].split(':')[1]) //앞자리 시간
}
for (let i=0;i<arr1.length;i++){
if(Number(arr2[i].split(':')[0])>28) {
c += 21
d += 0
} else {
c += Number(arr2[i].split(':')[0])
d += Number(arr2[i].split(':')[1])
}
}
a+=parseInt(b/60)
b = b%60
c+=parseInt(d/60)
d = d%60
if(d>b){
return `${c-a}시간 ${d-b}분`
} else {
return `${c-a-1}시간 ${d-b+60}분`
}
}
let arr1=["8:42", "9:00", "8:50", "8:47", "9:01", "8:51", "8:59"];
let arr2=["21:42", "23:10", "25:30", "29:10", "23:11", "26:44", "29:26"];
console.log(solution(arr1, arr2))
'자료구조&알고리즘' 카테고리의 다른 글
프로그래머스 Lv.2 124 나라의 숫자 (0) | 2022.01.28 |
---|---|
[백준] 사분면 고르기 (0) | 2022.01.22 |
프로그래머스[Level1] 3진법 뒤집기 (0) | 2022.01.20 |
프로그래머스[Level1] 하샤드 수 (0) | 2022.01.20 |
프로그래머스[Level1] 콜라츠 추측 (0) | 2022.01.20 |