(1).백준 5054번 주차의 신은 여러개의 쇼핑몰에 다 방문해야 한다고 할 때

쇼핑몰 중 한 곳에만 주차한 다음 모두 방문하기 위한 최소 이동거리를 구해야 하는 문제였다.

 

모든 쇼핑몰을 각자 방문한 다음 이동거리를 구해줬는데

처음에는 각자 하나씩 거리를 재서 계산했지만 문제보다 적게 나오거나 많게 나왔고

정답과 왜 차이가 나는지 자세히 보니 여러 쇼핑몰을 일직선으로 우르르 들렸다 우르르 가져올 수 있었기 때문에

index를 기준으로 좌측, 우측 끝의 수치만 방문하고 돌아오는 길까지 계산하는 방식으로 문제를 해결했다.

const input = `2
4
24 13 89 37
6
7 30 41 14 39 42`.split('\n')

const result = []

for(let i = 2 ; i < input.length ; i+=2){
    const arr = input[i].split(' ').map(Number)
    let min = 20000
    for(let j = 0 ; j < arr.length ; j++){
        const minIndex = Math.min(...arr)
        const maxIndex = Math.max(...arr)
        const sum = (Math.abs(minIndex - arr[j]) + Math.abs(maxIndex - arr[j])) * 2 
        min = Math.min(min, sum)
    }
    result.push(min)
}

console.log(result.join('\n'))

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

[개발일지] - 363(주말)  (0) 2024.06.29
[개발일지] - 362  (0) 2024.06.28
[개발일지] - 360  (2) 2024.06.26
[개발일지] - 359  (0) 2024.06.25
[개발일지] - 358  (0) 2024.06.24

+ Recent posts