ABOUT ME

-

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

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

    문자열 배열 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





































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

    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
    }


     답!


    ------------------------------------------------------[Answer2]--------------------------------------------------------------------------------------

    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
    }


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


    좋은 답은 아닌거 같다




    728x90

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

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