https://www.acmicpc.net/problem/14562
14562번: 태권왕
첫째 줄에 테스트 케이스의 수 C(1 ≤ C ≤ 100)이 주어진다. 둘째 줄부터 C줄에 걸쳐 테스트 케이스별로 현재 점수 S와 T가 공백을 사이에 두고 주어진다. (1 ≤ S < T ≤ 100)
www.acmicpc.net
자바스크립트로 처음 풀어본 재귀함수 문제이다. 순수함수로 구현하지 못한 점이 아쉽다. spread연산자를 사용하였다.
//1. 비동기로 처리하자
//2. 재귀를 이용하자
//https://youj.tistory.com/17
const readline = require('readline')
let ans
let cnt = 0
const rl = readline.createInterface({
output: process.stdout,
input: process.stdin
})
function rec(x, y, cnt) {
if(x > y) {
return
}
else if(x == y) {
ans = Math.min(ans, cnt)
return
}
else {
rec(x * 2, y + 3, cnt + 1)
rec(x + 1, y, cnt + 1)
}
}
function parseValue(input) {
return arr = input.split(' ').map(x => { return parseInt(x) })
}
rl.on('line', line => {
if(cnt === 0) {
cnt = parseInt(line)
}
else {
const parse = parseValue(line)
ans = parse[1] - parse[0]
rec(...parse, 0)
console.log(ans)
cnt--
}
if(cnt === 0) {
rl.close()
}
}).on('close', () => {
process.exit()
})
'백준' 카테고리의 다른 글
백준2685 - 님비합 (0) | 2020.08.25 |
---|---|
백준2980 - 도로와 신호등 (0) | 2020.08.09 |
백준4470 - 줄번호 (0) | 2020.08.06 |
백준17249 - 태보태보 총난타 (0) | 2020.08.06 |
백준11383 - 뚊 (0) | 2020.08.05 |