[D+66]20220214

ga_ding·2022년 2월 14일
0

TIL

목록 보기
16/55

11021번

let input = require("fs").readFileSync("/dev/stdin").toString().split("\n");

for (let a = 1; a <= input[0]; a++) {
  let number = input[a].split(" ");

  console.log(`Case #${a}: ${Number(number[0]) + Number(number[1])}`);
}

음... 답안을 작성하기는 했는데 찝찝

2525번

const fs = require('fs'); 
const input = fs.readFileSync("/dev/stdin").toString().trim().split('\n'); 
const current = input[0].split(' ').map(Number); 

const Hour = current[0]; 
const Minute = current[1]; 
const CookTime = Number(input[1]);

let DHour = Number((Hour*60)+Minute+CookTime)/60
let DMinute = Number((Hour*60)+Minute+CookTime)%60

if (DHour >= 24) {
    DHour -= 24
} 
console.log (DHour,DMinute)

어흑... 이거 틀린 답안인데 도대체 뭐가 틀린 부분인지 몰라서 수정을 못하겟다 1시간 넘게 매달린거같은데 너무너무너무 어렵다ㅣ....

const fs = require('fs'); 
const input = fs.readFileSync("/dev/stdin").toString().trim().split('\n'); 
const current = input[0].split(' ').map(Number); 
const currentHour = current[0]; 
const currentMinute = current[1]; 
const cookTime = Number(input[1]);
const cookEndTimeHour = parseInt((currentHour*60 + currentMinute + cookTime)/ 60) ; 
const cookEndTimeMinute = parseInt((currentHour*60 + currentMinute + cookTime)% 60); 
console.log(cookEndTimeHour >= 24 ? cookEndTimeHour - 24 : cookEndTimeHour, cookEndTimeMinute);

위 코드는 이 블로그에서 참고한 답안... 모르겠다ㅠ

찾았따!!!!! 첫문제 틀리고 50분만에 찾았다!! 자꾸 소수점이 붙어서 계산이 잘못된줄 알았는데 내가 정수 취하는 법을 몰랐던 것!

const fs = require('fs'); 
const input = fs.readFileSync("/dev/stdin").toString().trim().split('\n'); 
const current = input[0].split(' ').map(Number); 

const Hour = current[0]; 
const Minute = current[1]; 
const CookTime = Number(input[1]);

let DHour = parseInt(((Hour*60)+Minute+CookTime)/60)
let DMinute = parseInt(((Hour*60)+Minute+CookTime)%60)

if (DHour >= 24) {
    DHour-= 24
} 
console.log (DHour,DMinute)


바로 'parseInt'가 정수만 취하는 함수였당!!! 신난닷

시를 모두 분으로 바꾸고 몫은 시간으로 나머지는 분으로 변수를 정했다.
그리고 24시가 넘어가면 00시로 바꿔줘야했기 때문에 24를 빼주기!

2480번

아 이번 문제도 풀기 진짜 어렵당... 또 뭐가 틀린지 모르겠음

const fs = require('fs'); 
const input = fs.readFileSync("/dev/stdin").toString().trim().split(' ').map(Number); 
const [first, second, third] = [input[0], input[1], input[2]];

if (first===second && second===third) {
    console.log(Number(10000+(first*1000)))
} 
else if (first===second || second===third) {
    console.log(Number(1000+(second*100)))
} 
else {
    let array = [first, second, third]
    array.sort(function(a, b) { 
    return a - b;
    });
    console.log(Number( array.sort(function(a, b) { 
        return a - b;
        })[2]*100))
}

분명히 이렇게 했을 때 내가 돌릴 땐 답이 잘 나오는데 뭐가 문제지...

const fs = require('fs'); 
const input = fs.readFileSync("/dev/stdin").toString().trim().split(' ').map(Number); 

let [first, second, third] = input.sort((a,b)=>a-b);
  
if (first===second && second===third) {
    console.log(Number(10000+first*1000));
} 
else if (first===second || second===third) {
    console.log(Number(1000+second*100));
} 
else {
    console.log(third*100);
}

입력법을 바꿔봤다.. 풀렸다. 어려운 문제는 아니였던 것 같은데

let [first, second, third] = input.sort((a,b)=>a-b);

이거 정리하는 부분을 한참 헤맸다. 1시간 넘게 걸림ㅎ

그리고 추가로 여기에서 배열 오름차순 내림차순에 대해서도 알게 됐다.

var score = [4, 11, 2, 10, 3, 1]; 

/* 오류 */
score.sort(); // 1, 10, 11, 2, 3, 4 
              // ASCII 문자 순서로 정렬되어 숫자의 크기대로 나오지 않음

/* 정상 동작 */
score.sort(function(a, b) { // 오름차순
    return a - b;
    // 1, 2, 3, 4, 10, 11
});

score.sort(function(a, b) { // 내림차순
    return b - a;
    // 11, 10, 4, 3, 2, 1
});

11021번

let input = require("fs").readFileSync("/dev/stdin").toString().split("\n");

for (let i = 1; i <= input[0]; i++) {
    let numbers = input[i].split(' ')
    let A = Number(numbers[0])
    let B = Number(numbers[1])

    console.log(`Case #${i}: ${A} + ${B} = ${A + B}`)
}

후 진짜 다시 한 번 배운다. 덤벙거리지 말자
console에 띄어쓰기 잘못해서 오답 찾느라고 시간 버렸음..

profile
大器晩成

0개의 댓글