728x90
문제 2869번
https://www.acmicpc.net/problem/2869
2869번: 달팽이는 올라가고 싶다
첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000)
www.acmicpc.net
달팽이가 낮에 A미터 올라갈 수 있지만 밤에는 B미터 미끄러진다. 그리고 정상에 올라간 후에는 미끄러지지 않는다. 이때 높이가 V미터인 나무 막대를 모두 올라가려면 며칠이 걸리는지 구해야하는 문제이다.
식을 써보면, ( A - B ) * 며칠 + B = V
A미터 올라가고 B미터 내려간 거리에 며칠이 걸렸는지 곱해주면 총 거리인 V가 나올거라고 생각할 수 있지만, 여기서 정상에 올라간 후에는 미끄러지지 않는다고 했으니 마지막에 정상에 올라갔을 때 미끄러진 것을 더해주어야 한다.
따라서 며칠 = ( A - B ) / ( V - B )라는 식이 나온다.
만약, 딱 나누어 떨어지지 않는다면 하루를 더 추가해줘야되기 때문에 여기서는 소수점을 올려주는 것이 필요하다.
소수점 올림, 내림, 반올림에 대한 코드는 다음과 같다.
Math.ceil() //올림
Math.floor() //내림
Math.round() //반올림
그래서 코드를 작성해주면 ~~
const readFileSyncAdress = process.platform === 'linux' ? '/dev/stdin':'./input.txt'
const input = require("fs").readFileSync(readFileSyncAdress).toString().trim().split(' ').map((x)=>+x);
let A = input[0];
let B = input[1];
let V = input[2];
console.log(Math.ceil(( V - B )/( A - B )));
중간에 변수를 잘못써서 계속 틀렸다 ㅎㅎ...(눈물)
단항 연산자에 대해 알아보았다.
단항 + 연산자 -> 값을 Number 타입으로 변환(Number()와 기능같음), 연산시에만 바꿈(원래 값은 바뀌지 않음)
형태 : +value
코드가독성 : +를 더하기로 착각할 수 있기때문에 Number()를 추천
단항 - 연산자 -> 값의 부호를 바꿈 : +는-로, -는 +로, 연산시에만 바꿈(원래 값은 바뀌지 않음)
형태 : -value
코드가독성 : value*(-1)과 같은 형태로 추천
[출처] https://velog.io/@goggling/javascript-%EC%97%B0%EC%82%B0%EC%9E%90Operator-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0
728x90
'백준 > JavaScript' 카테고리의 다른 글
[JS] 백준 24262번 - 알고리즘의 수행 시간 1 (0) | 2024.03.10 |
---|---|
[JS] 백준 1193번 - 분수찾기 (2) | 2024.03.09 |
[JS] 백준 3009번 - 네 번째 점 (0) | 2024.03.03 |
[JS] 백준 기하 - 1085번 (1) | 2024.02.11 |
[JS] 백준 기하 - 27323번 (0) | 2024.02.10 |