(1).백준 8932번 7종 경기는 난이도에 비해 조금 귀찮았고
지수 부분에 소숫점을 이렇게 넣어도 된다는 것을 처음 겪어본 문제였다.
계산 공식이 A*(P-B)^C 형태였으며 필드/트랙에 따라 계산도 분기가 있었기 때문에 분기 처리를 해줘야 했고
제일 귀찮은 부분은 각 경기마다 점수 기준치가 다 달랐기 때문에
해당 경기의 계산에 필요한 데이터를 미리 입력하는 배열 작성이 귀찮았다.
그 외에는 기준에 맞는 값을 계산 공식에 맞게 입력하고
정수로 반환해야 했기 때문에 Math.floor로 해결할 수 있었다.
const input = `3
19 90 11 29 264 20 131
12 95 21 37 224 35 221
17 168 15 23 275 22 241`.split('\n')
const scoreBoard = [
[9.23076, 26.7, 1.835, '트랙'],
[1.84523, 75, 1.348, '필드'],
[56.0211, 1.5, 1.05, '필드'],
[4.99087, 42.5, 1.81, '트랙'],
[0.188807, 210, 1.41, '필드'],
[15.9803, 3.8, 1.04, '필드'],
[0.11193, 254, 1.88, '트랙']
]
const result = []
for(let i = 1 ; i < input.length ; i++){
let score = 0
const arr = input[i].split(' ').map(Number)
for(let j = 0 ; j < arr.length ; j++){
if(scoreBoard[j][3] === '트랙'){
score += Math.floor(scoreBoard[j][0] * (scoreBoard[j][1] - arr[j])**scoreBoard[j][2])
}
else{
score += Math.floor(scoreBoard[j][0] * (arr[j] - scoreBoard[j][1])**scoreBoard[j][2])
}
}
result.push(score)
}
console.log(result.join('\n'))'회고' 카테고리의 다른 글
| [개발일지] - 66 (0) | 2023.09.04 |
|---|---|
| [개발일지] - 65(주말) (0) | 2023.09.03 |
| [개발일지] - 63 (0) | 2023.09.01 |
| [개발일지] - 62 (0) | 2023.08.31 |
| [개발일지] - 61 (0) | 2023.08.30 |