-
카카오 2024 WINTER INTERNSHIP알고리즘 2025. 5. 28. 23:19
Lv.1 가장 많이 받은 선물
문제 : https://school.programmers.co.kr/learn/courses/30/lessons/258712?language=kotlin
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
구현에 가까운 문제다.
class Solution { fun solution(friends: Array<String>, gifts: Array<String>): Int { var answer: Int = 0 val n = friends.size var nameToIndex = friends.withIndex().associate { it.value to it.index} var graph = Array<IntArray>(n) {IntArray(n)} var giftScore = IntArray(n) var giftsToGetScore = IntArray(n) gifts.forEach{ val (giver, taker) = it.split(" ") val giverIndex = nameToIndex[giver]!! val takerIndex = nameToIndex[taker]!! graph[giverIndex][takerIndex] += 1 giftScore[giverIndex] ++ giftScore[takerIndex] -- } for(i in 0 until n) { for(j in 0 until n){ if(i == j ) continue when { graph[i][j] > graph[j][i] -> giftsToGetScore[i] ++ graph[i][j] == graph[j][i] && giftScore[i] > giftScore[j] -> giftsToGetScore[i] ++ } } } return giftsToGetScore.maxOrNull() ?: 0 } }