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
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

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

 

 

 

 

'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

키위쥬스

--------------------------------------------------------------------------------------------------------------------------------------------------------------------

 타로는 0 부터 N-1 이라 이름을 붙인 N개의 병에 키위 주스를 넣었습니다. 이때 i번째의 용량은 capacities[i] 리터이며 타로가 i 번째 병에 넣은 키위 주 스의 주스의 양을 bottle[i] 리터라고 합니다.

 타로는 병에 키위 주스를 재분배하려고 하며, 0부터 M-1까지 M회 조작합니다. i번째의 조작은 타로가 병 fromId[i]부터 병 toId[i]에 키위 주스를 넣는 것을 의미합니다. 병 fromId[i]가 비어 있거나 병 toId[i]가 꽉 차 있는 순간, 타로는 더 이상 키위 주스를 넣지 않습니다.


 N개의 요소를 가진 정수 배열 int[] 를 리턴해 주세요. 배열의 i 번째 요소는 모든 주스를 쏟는 작입이 완료되고  i번째 병에 남아 있는 키위 주스의 양입니다.


[정의 : 클래스와 함수 정의]


Class : KiwiJuiceEasy

Java : public int[] thePouring(int[] capacities, int[] bottles, int[] fromId, int[] toId)


[제약조건 : 매개변수 범위]

capacities -> 2~50개의 요소가 있는 배열입니다. 각 요소는 1~1000000 사이의 값을 갖습니다.

bottles     -> capacities와 같은 수의 요소가 있는 배열입니다. bottles[i]는 capacities[i]에 들어 있는 주스를 의미합니다.

fromId     -> 1~50개의 요소가 있는 배열입니다.

toId         -> fromId와 같은 수의 요소가 있는 배열입니다.


변수 fromId와 toId는 0~(N-1) 사이의 값입니다. 이때 N은 변수 capacities의 항목 개수입니다. 변수 fromId[i]와 toId[i]는 서로 다른 값을 갖습니다.


[예시 : 입력 데이터와 출력 데이터]

1. capacities = {20, 20}

bottles = {5,8}

fromId = {0}

toId = {1}

Returns :{0, 13}

2. capacities = {10, 10}

bottles = {5,8}

fromId = {0}

toId = {1}

Returns : {3,10}

3. capacities = {30, 20,10}

bottles = {10, 5,5}

fromId= {0,1,2}

toId = {1,2,0}

Returns : {10,10,0}

4. capacities = {14,35,86,58,25,62}

bottles = {6, 34, 27, 38, 9, 60}

fromId = {1,2,4,5,3,3,1,0}

toId ={0,1,2,4,2,5,3,1}

Returns : {0,14,65,35,25,35}


스칼라 언어로 프로그램 하시오

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

[Q3] 암호  (0) 2017.12.19
[Q2] 즐거운 파티  (0) 2017.12.12

+ Recent posts