Cryptography

Cute_Security15·2025년 11월 14일

알고리즘

목록 보기
7/27

문제

int numbers[] 에서 1개의 값을 선택하고 1을 증가한다.
내부의 모든 숫자의 곱이 가장 커지게 선택한다.

곱의 최댓값을 리턴한다.

예시 입력

1, 2, 3
1, 3, 2, 1, 1, 3
1000, 999, 998, 997, 996, 995
1, 1, 1, 1

예시 출력

12
36
986074810223904000
2

생각의 변화

ans 는 int 가 아니라 long long 이다.
long long 이여야 3번 답이 정상출력된다.

( cf. c++ 에서는 overflow exception 이 발생하지 않는다. )

pseudo code

crypto(A)
    long long ans

    for i=0  i<A.size()  i++
        A[i]++
    
        m = A[0];
        for j = 1  j<A.size()  j++
            m *= A[j]
    
        ans = max(m, ans)
    
    return ans
profile
관심분야 : Filesystem, Data structure, user/kernel IPC

0개의 댓글