(1).백준 12571번 Rope Intranet (Small)은 두 건물 사이의 각 창문들에 로프가 걸려있을 때

교차되는 포인트가 몇개인지를 각 테스트케이스별로 구해줘야 하는 문제였는데

일단 테스트케이스별로 쪼개서 내부에서 처리하려고 하다가 for문이 너무 많아지니 보기 힘들어지는 것 같아서

for문 내부에서 함수 호출식으로 변경했다.

 

함수 내부에서는 각 창문별 교차를 모든 경우의 수를 기준으로 교차 여부를 판별해줬고

각 합을 반환하면 리터럴 템플릿으로 요청하는 형식에 맞춰 result에 담아준 다음 한번에 출력하는 방식으로 해결했다.

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

const result = []
let count = 1
const cal = (arr) => {
    let count = 0
    for(let i = 0 ; i < arr.length ; i++){
        for(let j = i+1 ; j < arr.length ; j++){
            const [x1,y1] = arr[i]
            const [x2,y2] = arr[j]
            if(x1 > x2 && y1 < y2){
                count++
            }
            else if(x1 < x2 && y1 > y2){
                count++
            }
        }
    }
    return count
}

for(let i = 1 ; i < input.length ; i++){
    const num = input[i][0]
    const list = input.slice(i+1, i+1+num)
    result.push(`Case #${count}: ${cal(list)}`)
    i += num
    count++
}

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

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

[개발일지] - 953  (0) 2026.02.24
[개발일지] - 951(주말)  (0) 2026.02.22
[개발일지] - 951  (0) 2026.02.21
[개발일지] - 950  (0) 2026.02.19
[개발일지] - 949(설날)  (0) 2026.02.19

+ Recent posts