Open hsskey opened 2 months ago
input N <= 10^6
input
output
제약조건
arr.sort() left = 0 right = n - 1 loop(left < right) if(arr[left] + arr[rigth] === x) cnt++ left++ else if > right-- else if < left++
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)
두수의 합
📝 제약조건
input N <= 10^6
💡 예시
input
output
문제 해결 과정
Step 1: 문제 이해하기
제약조건
,input
,output
을 확인하여 문제를 정확히 파악합니다.Step 2: 접근 방법
Step 3: 코드 설계
Step 4: 코드 구현