회고
[개발일지] - 412(주말)
Happy Programmer
2024. 8. 18. 23:34
(1).백준 2467번 용액은 Class5에 있는 문제로 어제부터 슬슬 찔러보고 있는 문제 중 하나였다.
이건 5단계 문제 치고 상단히 간단하게 풀 수 있었는데
여러개의 정렬된 음과 양의 용액의 특성값(산성,알칼리성)이 제공될 때
합이 가장 0에 가까운 쌍을 출력해야 하는 문제였다.
양 끝에서부터 0보다 클 경우 양수쪽을 줄이는 방법으로 우측 인덱스를 줄이고
0보다 작을 경우 음수쪽을 줄이는 방법으로 좌측 인덱스를 줄여서 폭을 좁혔고
그 차이를 따로 기입하면서 최소값일 경우에만 요청하는 출력값대로 result에 값을 저장하는 방식으로 해결했다.
const input = `4
-100 -2 -1 103`.split('\n')[1].split(' ').map(Number)
let left = 0
let right = input.length - 1
let min = Infinity
let result = ''
while(left != right){
let sum = input[left] + input[right]
if(Math.abs(sum) < min){
min = Math.min(Math.abs(sum), min)
result = `${input[left]} ${input[right]}`
}
if(sum >= 0){
right--
}
else{
left++
}
}
console.log(result)