ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코딩공부[Q3]
    프로그래밍/코딩 공부 2018. 1. 26. 10:55
    728x90

    HNK(HUN NAM KYU)는 새로운 암호화 시스템을 개발했습니다. 이 시스템은 암호화하려고 숫자 리스트를 입력받습니다.

    여러분은 HNK의 비밀 정보 수사원입니다. 암호화 과정에서 중요한 부분을 구현하는 것이 여러분의 일입니다. 여러분은 입력 리스트에서 1개의 값을 선택하고 값을 1증가시킵니다. 이때 리스트 내부의 모든 숫자 곱이 가장 커져야 합니다.

    int[] numbers 형태로 숫자 배열이 주어질 때 곱의 최대값을 리턴하세요. 리턴값이 2^62를 넘는 문제는 나오지 않을 것을 보장합니다.


    [제약 조건]

    capacities : 2~50개의 요소가 있는 배열이며 각 요소의 값은 1~1000입니다.

    리턴값 : 2^26을 넘지 않습니다.


    [예시]

    0) numbers = {1,2,3}

        Returns : 12

    1) numbers = {1,3,2,1,1,3}

        Returns : 36

    2) numbers = {1000,999,998,997,996,995}

        Returns : 986074810223904000

    3) numbers = {1,1,1,1}

        Returns : 2


    [예시 해설]

    0) +1 요소가 첫번째 => {1+1,2.3} =>2*2*3 = 12

        +1 요소가 두번째 => {1,2+1,3} => 1*3*3 =9

        +1 요소가 세번째 => {1,2,3+1} => 1*2*4 =8


    스칼라로 코딩하시오
































    -------------------------------------------------------[Answer]----------------------------------------------------------------

    def getMaxArrayMulti(numbers:Array[Int]) : BigInt = {
    var mMultiply:BigInt = 1
    val minData = numbers.min
    val minIdx = numbers.indexOf(minData)

    numbers(minIdx) += 1

    for(num<- numbers) {
    mMultiply *= num
    }

    mMultiply
    }


    728x90

    '프로그래밍 > 코딩 공부' 카테고리의 다른 글

    코딩공부[Q2]  (0) 2018.01.26
    코딩 공부[Q1]  (0) 2018.01.26
Designed by Tistory.