문제: https://school.programmers.co.kr/learn/courses/30/lessons/68644
1. 코드
import java.util.*;
class Solution {
public ArrayList<Integer> solution(int[] numbers) {
ArrayList<Integer> answer = new ArrayList<>();
for(int i = 0; i < numbers.length; i++) {
for(int j = i + 1; j < numbers.length; j++) {
if(answer.indexOf(numbers[i] + numbers[j]) == -1)
answer.add(numbers[i] + numbers[j]);
}
}
Collections.sort(answer);
return answer;
}
}
2. 설명
ArrayList<Integer> answer = new ArrayList<>();
for(int i = 0; i < numbers.length; i++) {
for(int j = i + 1; j < numbers.length; j++) {
if(answer.indexOf(numbers[i] + numbers[j]) == -1)
answer.add(numbers[i] + numbers[j]);
}
}
두 수의 합의 결과를 이미 추가했는지 확인하기 위해 List의 indexOf() 메서드를 사용하기 위해서 ArrayList를 활용하였습니다. 그리고 이중 반복문을 통해서 모든 두 수의 합을 구해서 존재하지 않다면 answer 추가합니다.
Collections.sort(answer);
return answer;
반복문이 종료한 뒤 answer를 오름차순으로 정렬한 뒤 반환하면 종료됩니다.
3. 정리
- List를 활용한다.
- 이중 반복문을 통해서 두 수의 합을 구한 뒤 indexOf() 메서드를 통해서 중복 확인을 진행한다.
- 전부 추가되었다면 오름차순으로 정렬한다.
출처: 프로그래머스 코딩 테스트 연습,
https://school.programmers.co.kr/learn/challenges
'컴퓨터 > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 142086번: 가장 가까운 같은 글자 [Java] (0) | 2023.07.20 |
---|---|
프로그래머스 - 134240번: 푸드 파이트 대회 [Java] (0) | 2023.07.19 |
프로그래머스 - 12915번: 문자열 내 마음대로 정렬하기 [Java] (0) | 2023.07.17 |
프로그래머스 - 81301번: 숫자 문자열과 영단어 [Java] (0) | 2023.07.16 |
프로그래머스 - 17681번: [1차] 비밀지도 [Java] (0) | 2023.07.15 |