백준 3273 두 수의 합

백준 3273 두 수의 합

구현전 생각

주어진 수열을 정렬을 한 뒤 처음 값 (I)과 마지막 값(j)을 비교 목표로 하는 값보다 작다면
i++, 목표로 하는 값보다 크다면 j-- 를 이용한다.

아쉬운 점

코드

package argorithm_study_May;

import java.util.Arrays;
import java.util.Scanner;

public class backjoon_3273_두수의합 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int num[] = new int[N];
		for (int i = 0; i < N; i++) {
			num[i]=sc.nextInt();
		}
		int target = sc.nextInt();
		Arrays.sort(num);
		int i=0,j=N-1;
		int cnt=0;
		while(i<j) {
			if(num[i]+num[j]==target) {
				cnt++;
				i++;
				j--;
				continue;
			}
			if(num[i]+num[j]<target) {
				i++;
				continue;
			}
			if(num[i]+num[j]>target) {
				j--;
				continue;
			}
		}
		System.out.println(cnt);
	}
}

좋은 웹페이지 즐겨찾기