hsskey / algorithm-practice

🧑‍💻 Solving algorithms to level up
0 stars 0 forks source link

두 수의 합 #7

Open hsskey opened 2 months ago

hsskey commented 2 months ago

두수의 합

📝 제약조건

💡 예시

문제 해결 과정

Step 1: 문제 이해하기

Step 2: 접근 방법

Step 3: 코드 설계

arr.sort()
left = 0
right = n - 1

loop(left < right)
    if(arr[left] + arr[rigth] === x)
        cnt++
        left++
    else if > 
        right--
    else if <
        left++

Step 4: 코드 구현

const fs = require('fs')
const filePath = process.platform === 'linux' ? '/dev/stdin' : `${__dirname}/input.txt`
const input = fs.readFileSync(filePath).toString().split('\n')

const n = Number(input[0]) // 수열의 크기
const arr = input[1].split(" ").map(Number)
const x = Number(input[2])

arr.sort((a,b) => a - b)

let left = 0
let right = n - 1
let cnt = 0

while(left < right) {
    if(arr[left] + arr[right] === x) {{
        cnt += 1
        left++
    }}else if(arr[left] + arr[right] > x) {
        right-= 1
    } else if(arr[left] + arr[right] < x) {
        left+= 1
    }
}
console.log(cnt)