프로그래머스 두 개 뽑아서 더하기 (JAVA)

2026. 5. 26. 16:11·코테(Solved.ac + Programmers)
728x90

🔗 문제 링크

프로그래머스 - 두 개 뽑아서 더하기


📌 문제 개요

정수 배열 numbers에서 서로 다른 인덱스의 두 수를 선택하여 더한 값을 구하는 문제입니다.

조건:

  • 같은 인덱스는 사용할 수 없음
  • 중복된 결과 제거
  • 오름차순 정렬 후 반환

ex : 

[2,1,3,4,1]
가능한 합: 2, 3, 4, 5, 6, 7

📌접근 방법

모든 경우의 수를 확인하기 위해 이중 반복문을 사용

for(int i = 0; i < numbers.length; i++){
    for(int j = i + 1; j < numbers.length; j++){

    }
}

j = i + 1 부터 시작

  • 자기 자신 선택 방지
  • 중복 조합 제거

TreeSet을 사용하여 동시에 처리

  • 중복 제거
  • 오름차순 정렬

📌 핵심 아이디어

1. TreeSet 사용

TreeSet 특징:

  • 중복 제거
  • 자동 오름차순 정렬
  • 따라서 별도의 정렬 코드가 필요 없습니다.
TreeSet<Integer> set = new TreeSet<>();

2. 두 수 조합 생성

  • 모든 조합의 합을 TreeSet에 저장
set.add(numbers[i] + numbers[j]);

3. int[] 배열 변환

  • stream()을 사용하여 Set → int[] 형태로 변환
return set.stream()
        .mapToInt(Integer::intValue)
        .toArray();

📌 전체 코드

import java.util.TreeSet;

class Solution {
    public int[] solution(int[] numbers) {

        TreeSet<Integer> set = new TreeSet<>();

        for(int i = 0; i < numbers.length; i++){
            for(int j = i + 1; j < numbers.length; j++){
                set.add(numbers[i] + numbers[j]);
            }
        }

        return set.stream()
                .mapToInt(Integer::intValue)
                .toArray();
    }
}

📄 정리

  • 브루트포스 탐색
  • Set 자료구조 활용
  • stream 배열 변환

개념을 함께 연습할 수 있는 문제

 

특히 TreeSet 하나로:

  • 중복 제거
  • 정렬

을 동시에 처리할 수 있다는 점이 핵심

728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

[프로그래머스] K번째수 JAVA 풀이 (알고리즘, 시간복잡도)  (0) 2026.05.28
프로그래머스 푸드 파이트 대회 JAVA 풀이  (0) 2026.05.27
프로그래머스 시저 암호 JAVA (문자열, 구현, 아스키코드)  (0) 2026.05.25
프로그래머스 가장 가까운 같은 글자 JAVA 풀이 (해시맵, 문자열)  (0) 2026.05.24
프로그래머스 3진법 뒤집기 (JAVA)  (0) 2026.05.22
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • [프로그래머스] K번째수 JAVA 풀이 (알고리즘, 시간복잡도)
  • 프로그래머스 푸드 파이트 대회 JAVA 풀이
  • 프로그래머스 시저 암호 JAVA (문자열, 구현, 아스키코드)
  • 프로그래머스 가장 가까운 같은 글자 JAVA 풀이 (해시맵, 문자열)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    수학
    배열
    정처기실기
    Level2
    백엔드개발자
    시뮬레이션
    level0
    백준
    정보처리기사
    문자열
    정처기
    코딩테스트
    실기
    구현
    자료구조
    정처기오답노트
    알고리즘
    springboot
    피보나치
    자바
    dp
    level1
    기출문제
    정렬
    완전탐색
    브루트포스
    프로그래머스
    정보처리기사 실기 기출문제
    java
    solved.ac
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
프로그래머스 두 개 뽑아서 더하기 (JAVA)
상단으로

티스토리툴바