[백준/Java] 3273번 : 두수의 합

김하밍·2023년 10월 7일

알고리즘

목록 보기
1/22

1. 문제

n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는 (ai, aj)쌍의 수를 구하는 프로그램을 작성하시오.

문제 출처


2. 문제 분석

  1. BufferedReader 와 InputStreamReader 사용하여 데이터 입력받기
  2. 첫번째 줄에 입력받는 n 크기의 배열 생성
  3. StringTokenizer 사용하여 두번째 줄에 공백 기준으로 입력되는 문자열을 배열의 요소로 저장하기
  4. 세번째 줄에는 ai + aj = x 입력받고, 해당하는 쌍의 갯수를 나타낼 변수 count 초기화하기
  5. 이중 for문 써서 i, j 돌 동안 ai + aj == x 에 해당한다면 count 계속 증가시키기
  6. count 출력하기

3. 제출한 코드

public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

int n = Integer.parseInt(br.readLine());
int[] a = new int[n];

StringTokenizer st = new StringTokenizer(br.readLine());
for (int i = 0; i < n; i++) {
	a[i] = Integer.parseInt(st.nextToken());
}

int x = Integer.parseInt(br.readLine());
int count = 0;

for (int i = 0; i < n; i++) {
	for (int j = i; j < n; j++) {
    	if (a[i] + a [j] == x) {
        	count++;
            }
          }
       }
       System.out.println(count);
     }
}
profile
나만의 언어로 기록하며 성장하기 !

0개의 댓글