Algorithm
프로그래머스 두 개 뽑아서 더하기 - 자바, 파이썬
한둥둥
2024. 8. 15. 13:44
자바 문제 풀이
1. 체크를 해주기 위한 배열을 만들어주었다. 100 + 99 를 더해준다고 가정했을 때, 200을 선언해도 충분하다.
2. 이중 포문을 돌면서 각각의 경우의 수를 더해주어 flag 를 태워서 flag true를 만들어준다.
3. Collections.sort를 사용해여. list를 정렬해준다. 그 후, list 반환.
import java.util.*;
class Solution {
public List<Integer> solution(int[] numbers) {
List<Integer> list = new ArrayList<>();
boolean []flag = new boolean[200];
for(int i=0; i< numbers.length; i++){
for(int j=i+1; j<numbers.length; j++){
int num = numbers[i] + numbers[j];
if(!flag[num]) {
list.add(num);
flag[num] = true;
}
}
}
Collections.sort(list);
return list;
}
}
파이썬 문제 풀이
def solution(numbers):
answer = []
index=0
for i in range(len(numbers)):
for j in range (i+1, len(numbers)):
if numbers[i] + numbers[j] not in answer:
answer.append(numbers[i] + numbers[j])
answer.sort();
return answer
range를 통해서 반복문을 돌았다.
if문을 통해서 numbers[i] + numbers[j]가 answer에 포함되어 있지 않다면 배열에 넣어주었다.
그 후, sort 해주었다.
def solution(numbers):
answer = set()
index=0
for i in range(len(numbers)):
for j in range (i+1, len(numbers)):
answer.add(numbers[i] + numbers[j])
answer = list(answer)
answer.sort();
return answer
list(answer) 리스트로 반환해주었다.