반응형
```
백준 25904번 안녕 클레오파트라 세상에서 제일가는 포테이토칩 Kotlin 구현해보기
```
이번 글을 통해 배워갈 내용
- 백준 25904번 풀이
https://www.acmicpc.net/problem/25904
25904번: 안녕 클레오파트라 세상에서 제일가는 포테이토칩
"안녕 클레오파트라 세상에서 제일가는 포테이토칩"은 이전 사람보다 높은 목소리로 🎵 안녕 클레오파트라 세상에서 제일가는 포테이토칩🎵 을 외치는 게임이다. $1$번부터 $N$번까지의 사람이
www.acmicpc.net
백준 25904번 안녕 클레오파트라 세상에서 제일가는 포테이토칩은
난이도 브론즈 등급의 문제로서
N명이 원으로 서있고
순서대로 소리를 냅니다.
처음으로 내는 소리가 X 라면 X + 1 , 2 ,3으로 계속 소리 크기가 증가합니다
각 사람이 낼수있는 최대 소리 목록이 주어질 때
최초로 해당 순서에 소리 크기 이상 내지 못하는 사람을 구해주면 됩니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
입력을 받고
정해진 조건에 맞춰서
리스트를 돌면서
해당되는 순서에 크기보다 크다면 loop를 break 하고
해당되는 사람에 순서를 출력했습니다.
fun main(args: Array<String>) {
// input
val input01 = readln().split(" ")
val n = input01[0].toInt()
val x = input01[1].toInt()
val tList = readln().split(" ").map { k -> k.toInt() }
// output
print(solution(n, x, tList))
}
// n : number of participant
// x : voice strength unit
// tList : voice strength of each participant in sequence
fun solution(n: Int, x: Int, tList: List<Int>): Int {
val kMaxTry = 200
var mod = x
var ans = -1
outerLoop@
for (idx1 in 0..kMaxTry) {
for (idx2 in 0 until n) {
if (idx2 + mod > tList[idx2]) {
ans = idx2 + 1
break@outerLoop
}
}
mod += n
}
return ans
}
// https://codemasterkimc.tistory.com/
테스트
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
internal class MainKtTest {
@Test
fun test() {
assertEquals(2, solution(3, 3, listOf(8, 6, 5)))
assertEquals(1, solution(4, 5, listOf(4, 10, 9, 8)))
}
}
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
728x90
반응형
'Kotlin > Kotlin 알고리즘' 카테고리의 다른 글
백준 14888번 연산자 끼워넣기 Kotlin 구현해보기 (0) | 2023.03.10 |
---|---|
백준 1076번 저항 Kotlin 구현해보기 (0) | 2022.11.19 |
백준 1075번 나누기 Kotlin 구현해보기 (0) | 2022.11.19 |
백준 26041번 비슷한 전화번호 표시 Kotlin 구현해보기 (0) | 2022.11.19 |
백준 26026번 Coffee Cup Combo Kotlin 구현해보기 (0) | 2022.11.19 |