문제해결 : 배열 A value 2개를 더하면 n 값이 나오는 addNValue[0], addNValue[1]을 구하시오.
입력받은 배열 A가 있습니다.
입력받은 n이 있습니다 (배열 A value 2개를 더하면 n 값이 나옵니다.)
int[] aArr = {1, 2, 3, 4, 5} int n = 5
aArr : 입력받은 배열 A
N : 배열 A의 value 2개를 더한 값
Set set = new HashSet Integer type for(int i : aArr) { if(set.contain(n-i) { result[0] = i result[1] = n-i break } set.add(i) } return res;
CASE1 : !set.contain
n - i = 5 - 1
set.add(i) = set.add(1)
CASE2 : set.contain
n - i = 5 - 4
set.contains(n-i) = set.contains(5-4)
res[0] = 4
res[1] = 5 - 4 = 1
if(res[0] + res[1] == n) "res[0] = 4, res[1] = 1 더한 값이 5(n)가 맞습니다."
시간복잡도 O(n)
[Linked list] 리스트 결합과 데이터 중복 삭제 (0) | 2020.03.29 |
---|---|
[Linked list] 이중 연결리스트 꼬리 노드 (0) | 2020.03.26 |
상수, N 시간 복잡도 (0) | 2020.03.21 |
[Array] 기본 정리 (0) | 2020.03.09 |
[LinkedList] 기본 정리 (0) | 2020.03.08 |
댓글 영역