(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 |
