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
}


Q3 답

'Quiz > Answer' 카테고리의 다른 글

[A2] Answer  (2) 2017.12.19
[A2/kyu] 즐거운 파티 (또 다른 방법)  (0) 2017.12.18
[A2/kyu] 즐거운 파티 (scala)  (0) 2017.12.18
[A2/hun] 2 Answer(Invite Party)  (0) 2017.12.15
[A1] 이런 답도 있다  (0) 2017.12.12

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


스칼라로 코딩하시오



'Quiz > Question' 카테고리의 다른 글

[Q2] 즐거운 파티  (0) 2017.12.12
[Q1] 키위쥬스 (Scala)  (0) 2017.12.11

답안


def inviteParty2(first:Array[String], second:Array[String]) : Int = {
var mMap = new mutable.HashMap[String, Int]()

for(i<-first.length) {
mMap.put(first(i),0)
mMap.put(second(i),0)
}

for(i<-first.length) {
mMap(first(i)) = mMap.getOrElse(first(i),0)+1
mMap(second(i)) = mMap.getOrElse(second(i),0)+1
}

var ans = 0

for(key<-mMap.keySet){
ans = Math.max(ans, mMap.getOrElse(key,0))
}

ans
}


자바식으로 그대로 스칼라로 바꾼 것


좋은 답은 아닌거 같다

'Quiz > Answer' 카테고리의 다른 글

[A3] Answer  (0) 2018.01.03
[A2/kyu] 즐거운 파티 (또 다른 방법)  (0) 2017.12.18
[A2/kyu] 즐거운 파티 (scala)  (0) 2017.12.18
[A2/hun] 2 Answer(Invite Party)  (0) 2017.12.15
[A1] 이런 답도 있다  (0) 2017.12.12

'Quiz > Answer' 카테고리의 다른 글

[A3] Answer  (0) 2018.01.03
[A2] Answer  (2) 2017.12.19
[A2/kyu] 즐거운 파티 (scala)  (0) 2017.12.18
[A2/hun] 2 Answer(Invite Party)  (0) 2017.12.15
[A1] 이런 답도 있다  (0) 2017.12.12

'Quiz > Answer' 카테고리의 다른 글

[A2] Answer  (2) 2017.12.19
[A2/kyu] 즐거운 파티 (또 다른 방법)  (0) 2017.12.18
[A2/hun] 2 Answer(Invite Party)  (0) 2017.12.15
[A1] 이런 답도 있다  (0) 2017.12.12
[A1/kyu] 키위쥬스 (Scala)  (0) 2017.12.11
def inviteParty(first:Array[String], second:Array[String]) : Int = {
var mResultCnt = 1

var mFirstMap = mutable.Map[String, Int]()
var mSecondMap = mutable.Map[String, Int]()

for (num <- first.indices) {
if(mFirstMap.contains(first(num)) || mSecondMap.contains(first(num))
|| mFirstMap.contains(second(num)) || mSecondMap.contains(second(num))){
mResultCnt+=1
}
mFirstMap.put(first(num), 1)
mSecondMap.put(second(num), 1)
}

mResultCnt
}


 답!

'Quiz > Answer' 카테고리의 다른 글

[A2/kyu] 즐거운 파티 (또 다른 방법)  (0) 2017.12.18
[A2/kyu] 즐거운 파티 (scala)  (0) 2017.12.18
[A1] 이런 답도 있다  (0) 2017.12.12
[A1/kyu] 키위쥬스 (Scala)  (0) 2017.12.11
[A1/hun] 1 WEEK Answer (KIWI Juice)  (0) 2017.12.11

화이트씨는 다재다능한 사람입니다.(모든 것이 그의 관심 대상입니다.) 그래서 그에게는 친구가 많습니다. 하지만 불행하게도 그의 친구들은 다재다능하지 않습니다. 그래서 파티를 개최할 때마다 모두가 즐겁게 파티를 보내려면 어떤 친구를 초대 할지가 큰 문제 입니다. 화이트씨는 그 동안의 경험으로 초대된 친구 모두가 공통의 흥미 있는 화제가 있을 때 파티를 즐긴다는 것을 알았습니다.

문자열 배열 first, second가 주어집니다. 화이트씨의 i 번재 친국 흥미 있는 화제는 first[i]와 second[i] 입니다. 즐거운 파티가 되려면 화이트씨가 초대 할 수 있는 친구는 최대 몇 명인지 리턴하세요


[제약 조건]

first -> 1~50개의 요소를 갖는 배열

second -> first와 같은 크기의 배열

first, second 공통 -> 각 요소는 1~5개의 문자, 각 문자는 영어 소문자, i번재 요소 first[i]와 second(i)의 내용은 다르다.


[예시]

0) first = {"fishing","gardening","swimming","fishing"}

    second = {"hunting","fishing","fishing","biting"}

    returns : 4

1) first = {"a","b","c","d"}

    second = {"e","f","g","h"}

   return : 1

2) first = {"a","b","c",d"}

    second = {"e","e","f","e"}

   return : 3


사용 언어는 Scala

'Quiz > Question' 카테고리의 다른 글

[Q3] 암호  (0) 2017.12.19
[Q1] 키위쥬스 (Scala)  (0) 2017.12.11

if 문은 적게 쓸수록 좋다 그거는 프로그래머라면 다들 알고 있는 상식!!


이건 내가 한 것이 아니다...


def thePouring2(capapcities:Array[Int], bottles:Array[Int], fromId:Array[Int], toId:Array[Int]) : Array[Int] = {

for(nl <- fromId.indices ) {
val sum = bottles(fromId(nl)) + bottles(toId(nl))
bottles(toId(nl)) = Math.min(sum, capapcities(toId(nl)))
bottles(fromId(nl)) = sum - bottles(toId(nl))

}

bottles
}


결국은 수학적 사고 방식이 필요 한 것인가...


때론 단순한게 좋지만...


Input이 크지 않는 데이터라면 속도 차이는 거의 없다고 봐도 무방하지만


Input이 커질수록 if문이 있고 없고의 차이는 크다...


하지만 무엇이 딱 옳다고 말 할 수는 없는 것 같다.


코드는 줄일 수 있다면 좋지만 그 만큼 가독성이 떨어지기도 하니 말이다..

'Quiz > Answer' 카테고리의 다른 글

[A2/kyu] 즐거운 파티 (또 다른 방법)  (0) 2017.12.18
[A2/kyu] 즐거운 파티 (scala)  (0) 2017.12.18
[A2/hun] 2 Answer(Invite Party)  (0) 2017.12.15
[A1/kyu] 키위쥬스 (Scala)  (0) 2017.12.11
[A1/hun] 1 WEEK Answer (KIWI Juice)  (0) 2017.12.11

더 좋은 방법이 있을 것 같은데 더 공부를 해봐야 할 것 같다.

 

 

 

 

'Quiz > Answer' 카테고리의 다른 글

[A2/kyu] 즐거운 파티 (또 다른 방법)  (0) 2017.12.18
[A2/kyu] 즐거운 파티 (scala)  (0) 2017.12.18
[A2/hun] 2 Answer(Invite Party)  (0) 2017.12.15
[A1] 이런 답도 있다  (0) 2017.12.12
[A1/hun] 1 WEEK Answer (KIWI Juice)  (0) 2017.12.11

[Hun]

무언가 좀 더 깔삼한 방법이 있을 것 같지만...


일단 우선 적으로 만든 것(Scala)


def thePouring(capapcities:Array[Int], bottles:Array[Int], fromId:Array[Int], toId:Array[Int]) : Array[Int] = {

for(nl <- 0 until fromId.length ) {
val fromNum = fromId(nl) //시작 넘버
val toNum = toId(nl) //to 넘버

val addJuice = bottles(toNum) + bottles(fromNum)

if(capapcities(toNum) - addJuice <0) {
bottles(toNum) = capapcities(toNum)
bottles(fromNum) = addJuice - capapcities(toNum)
} else {
bottles(fromNum) = 0
bottles(toNum) = addJuice
}
}

bottles
}


'Quiz > Answer' 카테고리의 다른 글

[A2/kyu] 즐거운 파티 (또 다른 방법)  (0) 2017.12.18
[A2/kyu] 즐거운 파티 (scala)  (0) 2017.12.18
[A2/hun] 2 Answer(Invite Party)  (0) 2017.12.15
[A1] 이런 답도 있다  (0) 2017.12.12
[A1/kyu] 키위쥬스 (Scala)  (0) 2017.12.11

+ Recent posts