Skip to content

Commit

Permalink
#30 2 > 24.05.23 > [시뮬레이션] 날짜와 시간 - 2문제
Browse files Browse the repository at this point in the history
  • Loading branch information
beurmuz committed May 23, 2024
1 parent f1dd5f0 commit 511ac4d
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 11 deletions.
23 changes: 12 additions & 11 deletions src/tree/Lv_2/README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
# N_MID

| 학습일 | 목차 | 주제 | 제목 및 정답여부 |
| :---------: | :------- | :----------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 24.05.15 | 함수 | [값을 반환하지 않는 함수](./함수/값을%20반환하지%20않는%20함수.js) | 별 찍는 것을 5번 반복하기 (O)<br>반복 출력하기 (O)<br>함수를 이용해서 직사각형 만들기 (O)<br>숫자로 이루어진 사각형 (O)<br>최대공약수 구하기 (△)⭐️<br>최소공배수 구하기 (△)⭐️ |
| 24.05.15-18 | 함수 | [값을 반환하는 함수](./함수/값을%20반환하는%20함수.js) | 1부터 특정 수까지의 합 (O)<br>정수의 최솟값 (O)<br>짝수이면서 합이 5의 배수인 수 (O)<br>함수를 이용한 369 게임 (O)<br>함수를 이용한 소수 판별 (O)<br>함수를 이용한 윤년 판별 (O)<br>두 수의 거듭제곱 (O)<br>사칙연산 함수 (O)<br>함수를 이용한 온전수 판별 (O)<br>함수를 이용한 합과 소수 판별 (O)<br>함수를 이용한 연속부분수열 여부 판단하기 (O)<br>2021 날짜의 유무 (O)<br>그 계절, 그 날 (O)⭐️ |
| 24.05.18-19 | 함수 | [Call by value/Call by reference](./함수/Call%20by%20something.js) | 두 정수 값 교환하기 (O)<br>짝수만 2로 나누기 (O)<br>palindrome 여부 판단하기 (O)<br>두 정수에 대한 연산값 (O)<br>절댓값으로 변경 (O)<br>2개 이상의 알파벳 (O)<br>두 정수에 대한 연산값2 (O) |
| 24.05.20 | 함수 | [변수의 영역](./함수/변수의%20영역.js) | 함수를 이용한 부분 문자열의 위치 구하기 (O)<br>나누고 빼면서 합하기 (O)<br>특정 구간의 합 (O) |
| 24.05.20 | 재귀함수 | [값을 반환하지 않는 재귀함수](./재귀함수/값을%20반환하지%20않는%20재귀함수.js) | 반복 출력하기2 (O)<br>숫자 차례로 출력하기 (O)<br>재귀함수를 이용한 별 출력 (O)<br>재귀함수의 꽃 (O)<br>재귀함수를 이용한 별 출력2 (O) |
| 24.05.20-21 | 재귀함수 | [값을 반환하는 재귀함수](./재귀함수/값을%20반환하는%20재귀함수.js) | 1부터 특정 수까지의 합2 (O)<br>각 자리 숫자 합 (△)⭐️<br>1이 되는 순간까지 (O)<br>재귀함수를 이용한 피보나치 수 (O)<br>출력결과 9 (△)⭐️<br>Factorial (O)<br>홀수 짝수에 따른 출력값 (O)<br>출력결과 73 (△)<br>출력결과 52 (△)<br>재귀함수를 이용한 최댓값 (X)⭐️<br>큰 숫자 자리수의 합 (O)<br>재귀함수를 이용한 3n + 1 수열 (O)<br>100으로 나눈 나머지의 수열 (△)⭐️<br>이상한 수열 (O)<br>재귀함수를 이용한 최소공배수 (X)⭐️ |
| 24.05.21 | 정렬 | [일반 정렬](./정렬/일반%20정렬.js) | 오름 내림차순 정렬 (O)<br>문자열 정렬 (O)<br>단어 정렬 (O)<br>Top K 숫자 구하기 (O)<br>두 개의 동일한 수열 (O)<br>2개씩 그룹짓기 (O)<br>순서를 바꾸었을 때 같은 단어인지 판별하기 (O)<br>K번째로 신기한 문자열 (O)<br>중앙값 계산 2 (O) |
| 24.05.22 | 정렬 | [객체](./정렬/객체.js) | 007 (O) <br>Next Level (O)<br>코드 네임 (O)<br>폭탄 해체 (O)<br>상품 코드 (O)<br>사는 지역 (O)⭐️<br>비 오는 날 (O)⭐️ |
| 24.05.23 | 정렬 | [객체 정렬](./정렬/객체%20정렬.js) | 키를 기준으로 정렬 (O)<br>국영수 순이지 (O)<br>총점 비교 (O)<br>줄 세우기 (O)<br>개인 정보 (O)⭐️<br>키, 몸무게 기준으로 정렬 (O)<br>정렬된 숫자 위치 알아내기 (X)⭐️<br>줄 세우기 2 (O) |
| 학습일 | 목차 | 주제 | 제목 및 정답여부 |
| :---------: | :---------- | :----------------------------------------------------------------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 24.05.15 | 함수 | [값을 반환하지 않는 함수](./함수/값을%20반환하지%20않는%20함수.js) | 별 찍는 것을 5번 반복하기 (O)<br>반복 출력하기 (O)<br>함수를 이용해서 직사각형 만들기 (O)<br>숫자로 이루어진 사각형 (O)<br>최대공약수 구하기 (△)⭐️<br>최소공배수 구하기 (△)⭐️ |
| 24.05.15-18 | 함수 | [값을 반환하는 함수](./함수/값을%20반환하는%20함수.js) | 1부터 특정 수까지의 합 (O)<br>정수의 최솟값 (O)<br>짝수이면서 합이 5의 배수인 수 (O)<br>함수를 이용한 369 게임 (O)<br>함수를 이용한 소수 판별 (O)<br>함수를 이용한 윤년 판별 (O)<br>두 수의 거듭제곱 (O)<br>사칙연산 함수 (O)<br>함수를 이용한 온전수 판별 (O)<br>함수를 이용한 합과 소수 판별 (O)<br>함수를 이용한 연속부분수열 여부 판단하기 (O)<br>2021 날짜의 유무 (O)<br>그 계절, 그 날 (O)⭐️ |
| 24.05.18-19 | 함수 | [Call by value/Call by reference](./함수/Call%20by%20something.js) | 두 정수 값 교환하기 (O)<br>짝수만 2로 나누기 (O)<br>palindrome 여부 판단하기 (O)<br>두 정수에 대한 연산값 (O)<br>절댓값으로 변경 (O)<br>2개 이상의 알파벳 (O)<br>두 정수에 대한 연산값2 (O) |
| 24.05.20 | 함수 | [변수의 영역](./함수/변수의%20영역.js) | 함수를 이용한 부분 문자열의 위치 구하기 (O)<br>나누고 빼면서 합하기 (O)<br>특정 구간의 합 (O) |
| 24.05.20 | 재귀함수 | [값을 반환하지 않는 재귀함수](./재귀함수/값을%20반환하지%20않는%20재귀함수.js) | 반복 출력하기2 (O)<br>숫자 차례로 출력하기 (O)<br>재귀함수를 이용한 별 출력 (O)<br>재귀함수의 꽃 (O)<br>재귀함수를 이용한 별 출력2 (O) |
| 24.05.20-21 | 재귀함수 | [값을 반환하는 재귀함수](./재귀함수/값을%20반환하는%20재귀함수.js) | 1부터 특정 수까지의 합2 (O)<br>각 자리 숫자 합 (△)⭐️<br>1이 되는 순간까지 (O)<br>재귀함수를 이용한 피보나치 수 (O)<br>출력결과 9 (△)⭐️<br>Factorial (O)<br>홀수 짝수에 따른 출력값 (O)<br>출력결과 73 (△)<br>출력결과 52 (△)<br>재귀함수를 이용한 최댓값 (X)⭐️<br>큰 숫자 자리수의 합 (O)<br>재귀함수를 이용한 3n + 1 수열 (O)<br>100으로 나눈 나머지의 수열 (△)⭐️<br>이상한 수열 (O)<br>재귀함수를 이용한 최소공배수 (X)⭐️ |
| 24.05.21 | 정렬 | [일반 정렬](./정렬/일반%20정렬.js) | 오름 내림차순 정렬 (O)<br>문자열 정렬 (O)<br>단어 정렬 (O)<br>Top K 숫자 구하기 (O)<br>두 개의 동일한 수열 (O)<br>2개씩 그룹짓기 (O)<br>순서를 바꾸었을 때 같은 단어인지 판별하기 (O)<br>K번째로 신기한 문자열 (O)<br>중앙값 계산 2 (O) |
| 24.05.22 | 정렬 | [객체](./정렬/객체.js) | 007 (O) <br>Next Level (O)<br>코드 네임 (O)<br>폭탄 해체 (O)<br>상품 코드 (O)<br>사는 지역 (O)⭐️<br>비 오는 날 (O)⭐️ |
| 24.05.23 | 정렬 | [객체 정렬](./정렬/객체%20정렬.js) | 키를 기준으로 정렬 (O)<br>국영수 순이지 (O)<br>총점 비교 (O)<br>줄 세우기 (O)<br>개인 정보 (O)⭐️<br>키, 몸무게 기준으로 정렬 (O)<br>정렬된 숫자 위치 알아내기 (X)⭐️<br>줄 세우기 2 (O) |
| 24.05.23 | 시뮬레이션1 | [날짜와 시간 계산](./시뮬레이션1/날짜와%20시간%20계산.js) | Time to Time (O)<br>Date to Date (X)⭐️<br> |
68 changes: 68 additions & 0 deletions src/tree/Lv_2/시뮬레이션1/날짜와 시간 계산.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
// ----------------------------------------------------------------------
/**
* 🔍 Time to Time | O | 24.05.23 🔍
*
* [시뮬레이션 - 날짜와 시간]
*/
const [sh, sm, th, tm] = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split(" ")
.map((v) => +v);

function hourToMin(hour) {
return hour * 60;
}

let targetMin = hourToMin(th) + tm;
let startMin = hourToMin(sh) + sm;

console.log(targetMin - startMin);

// ----------------------------------------------------------------------
/**
* 🔍 ⭐️Date to Date⭐️ | O | 24.05.23 🔍
*
* [시뮬레이션 - 날짜와 시간]
* - 다시 풀어보기!
*/
const [m1, d1, m2, d2] = require("fs")
.readFileSync("/dev/stdin")
.toString()
.trim()
.split(" ")
.map((v) => +v);

function numOfDays(m, d) {
const mDays = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
let totalDays = 0;

// 1월부터 (m-1)월 까지는 전부 꽉 채워져 있다.
for (let i = 1; i < m; i++) {
totalDays += mDays[i];
}

// m월은 정확히 d일만 있다.
totalDays += d;
return totalDays;
}

let targetDay = numOfDays(m2, d2);
let startDay = numOfDays(m1, d1);

console.log(targetDay - startDay + 1);

// ----------------------------------------------------------------------
/**
* 🔍 | O | 24.05.23 🔍
*
* [시뮬레이션 - 날짜와 시간]
*/

// ----------------------------------------------------------------------
/**
* 🔍 | O | 24.05.23 🔍
*
* [시뮬레이션 - 날짜와 시간]
*/

0 comments on commit 511ac4d

Please sign in to comment.