(1).백준 21197번 Stopwatch는 이름처럼 스톱워치를 작동시켰을 때

현재 진행중인 경우 still running을 출력하고

진행중이 아닌 경우 기록된 시간을 출력해야 하는 문제였다.

 

각 줄에서 주어지는 숫자가 스톱워치 버튼을 누른 시간이기 때문에

초기 작동되지 않은 상태인 isRunning false로 시작하고

버튼을 누른 시점에서 작동하기 때문에 !isRunning으로 상태값을 반전시켰다.

 

running 상태인 경우 기록의 시작을 의미하기 때문에

현재 시간을 기록하는 now에 값을 할당하고

running 상태가 아닌 경우 중단 시점을 나타내기 때문에

중단 시점과 기록된 시점인 now의 차이를 time에 추가했다.

 

하단 코드에서는 now를 갱신했지만 생각해보면 start 상태일 때 값을 갱신하기 때문에

해당 부분은 급하게 푸느라 의미없는 할당을 진행한 것이었고

마지막에 삼항연산자를 통해 진행중인 경우 still running을 출력하고 아닌 경우 여태 쌓인 time을 출력했다.

const input = `4
0
2
104
117`.split('\n').map(Number)

let isRunning = false
let now
let time = 0

for(let i = 1 ; i < input.length ; i++){
    isRunning = !isRunning
    if(isRunning){
        now = input[i]
    }
    else{
        time += input[i] - now
        now = input[i]
    }
}
console.log(isRunning ? 'still running' : time)

'회고' 카테고리의 다른 글

[개발일지] - 157(연차)  (0) 2023.12.04
[개발일지] - 156(주말)  (1) 2023.12.03
[개발일지] - 154(연차)  (1) 2023.12.01
[개발일지] - 153  (0) 2023.11.30
[개발일지] - 152  (1) 2023.11.29

+ Recent posts