(1).백준 10813번 공 바꾸기는 n개의 공을 m번 바꿔야 하는 문제였다.

하지만 문제의 난이도에 비해 너무 단순한 요구조건이기 때문에

아래에 정리된 바꾸는 순서(m)개를 m번 반복해야 한다고 생각하고 while문을 돌려버렸다.

//문제의 해결과는 다른 풀이..
const input = `5 4
1 2
3 4
1 4
2 2`.split('\n').map(el => el.split(' ').map(Number))

const arr  = []
let count = input[0][1]

for(let i = 0 ; i < input[0][0] ; i++){
    arr.push(i+1)
}

while(count){
    count--
    for(let i = 1 ; i < input.length ; i++){
        const [a, b] = input[i]
        const temp = arr[a-1]
        arr[a-1] = arr[b-1]
        arr[b-1] = temp
    }
        console.log(arr)
}

 

4번 돌리니 값이 괴랄해졌고

첫 번째 돌린 값에 정답이 들어있는 것을 console을 통해 보고

while문과 count를 지워 문제를 해결할 수 있었다.

 

문제를 얼핏 보고 구현하는 것이 아니라

요구사항을 확실히 파악하고 문제를 푸는 것이 중요한 것 같다.

const input = `5 4
1 2
3 4
1 4
2 2`.split('\n').map(el => el.split(' ').map(Number))

const arr  = []

for(let i = 0 ; i < input[0][0] ; i++){
    arr.push(i+1)
}

for(let i = 1 ; i < input.length ; i++){
    const [a, b] = input[i]
    const temp = arr[a-1]
    arr[a-1] = arr[b-1]
    arr[b-1] = temp
}
console.log(arr.join(' '))

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

[수습일지] - 71  (0) 2023.06.05
[수습일지] - 70(주말)  (0) 2023.06.04
[수습일지] - 68  (0) 2023.06.02
[수습일지] - 67  (0) 2023.06.01
[수습일지] - 66  (0) 2023.05.31

+ Recent posts