Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- Spring
- 백트래킹
- lambda
- OS
- DFS
- 그래프
- DP
- TDD
- Brute-force
- 자료구조
- 백준
- 코틀린
- 모던자바
- back-end
- 네트워크
- 자바
- 프로젝트
- backtracking
- 프로그래머스
- 운영체제
- 알고리즘
- algorithm
- LEVEL2
- kotlin
- 스프링
- programmers
- baekjoon
- BFS
- java
- Java8
Archives
- Today
- Total
요깨비's LAB
[프로그래머스, Kotlin] 신고 결과 받기 본문
class Solution {
fun solution(id_list: Array<String>, report: Array<String>, k: Int): IntArray {
var answer = mutableListOf<Int>()
val userMap = mutableMapOf<String, User>()
for(id in id_list) {
userMap.putIfAbsent(id, User(id, 0, 0))
}
val reportSet = mutableSetOf<String>()
for (element in report) {
reportSet.add(element)
}
for (element in reportSet) {
val fromTo = element.split(" ")
val from = fromTo[0]
val to = fromTo[1]
val user = userMap[to] ?: continue
user.increaseReportCount()
}
for(element in reportSet) {
val fromTo = element.split(" ")
val from = fromTo[0]
val to = fromTo[1]
val reportTo = userMap[to] ?: continue
if(reportTo.getReportCount() >= k) {
val reportFrom = userMap[from]?: continue
reportFrom.increaseMailCount()
}
}
for(id in id_list) {
val user = userMap[id] ?: continue
answer.add(user.getMailCount())
}
return answer.toIntArray()
}
}
class User(
private val userId: String,
private var reportCount: Int,
private var mailCount: Int
) {
fun getUserId() = this.userId
fun getReportCount() = this.reportCount
fun getMailCount() = this.mailCount
fun increaseReportCount() {
this.reportCount++
}
fun increaseMailCount() {
this.mailCount++
}
}
'알고리즘(Java) > 프로그래머스' 카테고리의 다른 글
[프로그래머스, Java] 비밀지도 (0) | 2022.01.08 |
---|---|
[프로그래머스, Java] 로또의 최고순위와 최저순위 (0) | 2022.01.06 |
[프로그래머스, Java] 튜플 (0) | 2021.10.16 |
[프로그래머스, Java] 수식 최대화 (0) | 2021.10.15 |
[프로그래머스, Java] 자물쇠와 열쇠 (0) | 2021.09.23 |
Comments