상세 컨텐츠

본문 제목

HashSet : 문제적용 1

본문

HashSet 활용

문제해결 : 배열 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)



관련글 더보기

댓글 영역