Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- dfs
- 완전탐색
- 반효경교수님
- git
- lcap
- Mendix
- Sort
- Bruteforce
- domain model
- 그래프
- SQL
- algorithm
- 백트래킹
- 프로그래머스
- MySQL
- 재귀
- 스택
- 정렬
- 자바
- 집합
- 가중치없는그래프
- microflow
- 멘딕스
- 자료구조
- 이분탐색
- Recursion
- 매개변수 탐색
- 알고리즘
- 해시맵
- 트리
Archives
- Today
- Total
mondegreen
[240324] 알고리즘 리부트 37일차 - 프로그래머스 두 개 뽑아서 더하기 자바 본문
반응형
문제를 분석하고 입력값과 연산 횟수를 고려해 의사코드를 작성하고 시간 복잡도를 고민한 다음 코드를 작성했다. 활용한 것은 TreeSet인데 이 Set은 선언할 때부터 오름차순으로 정렬해주고 first()와 pollFirst() 같은 메서드를 활용해 가장 작은 값을 확인하거나 꺼내주는 기능을 한다. 따라서 별도로 배열 정렬할 필요가 없다. 여기서 잠깐 놓친 것은 pollFirst() 매서드를 사용함으로써 set의 크기가 동적으로 변하는데 변수로 저장해두지 않고 반복문의 길이를 size()로 설정했던 것이다. 실수를 깨닫고 변수로 받아 정적으로 활용했다.
import java.util.*;
class Solution {
public int[] solution(int[] numbers) {
TreeSet<Integer> set = new TreeSet<>();
for(int i = 0; i<numbers.length-1; i++)
for(int j = i+1; j<numbers.length; j++){
set.add(numbers[i]+numbers[j]);
}
int[] answer = new int [set.size()];
int len = set.size();
for(int i = 0 ; i < len; i++){
answer[i] = set.pollFirst();
}
return answer;
}
}
반응형
'알고리즘 풀이 및 리뷰 > 프로그래머스' 카테고리의 다른 글
[240326] 알고리즘 리부트 39일차 - 프로그래머스 올바른 괄호 자바 (0) | 2024.03.26 |
---|---|
[240325] 알고리즘 리부트 38일차 - 프로그래머스 방문 길이 자바 (1) | 2024.03.25 |
[240324] 알고리즘 리부트 37일차 - 프로그래머스 실패율 자바 (0) | 2024.03.24 |
[240324] 알고리즘 리부트 37일차 - 프로그래머스 행렬의 곱셈 자바 (0) | 2024.03.24 |
[240324] 알고리즘 리부트 37일차 - 프로그래머스 모의고사 자바 (0) | 2024.03.24 |