(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

+ Recent posts