반응형
```
백준 1076번 저항 Kotlin 구현해보기
```
이번 글을 통해 배워갈 내용
- 백준 1076번 풀이
https://www.acmicpc.net/problem/1076
1076번: 저항
첫째 줄에 첫 번째 색, 둘째 줄에 두 번째 색, 셋째 줄에 세 번째 색이 주어진다. 위의 표에 있는 색만 입력으로 주어진다.
www.acmicpc.net
백준 1076번 저항은
난이도 브론즈 등급의 문제로서
처음 두 개의 색은 저항의 값
나머지 한 개의 색은 곱해야 하는 값으로 쓰고
해당 표를 참조해서 맵핑만 하면 되는 문제입니다.
30분 정도 위에 링크를 방문하셔서 풀어보시고
안 풀리시는 경우에만 아래 해답을 봐주시면 감사하겠습니다.
입력을 받고
정해진 조건에 맞춰서 계산을 해서 출력해주면 되는
문제입니다.
스위치를 써서 해결하였습니다
fun main(args: Array<String>) {
// input
val f1 = readln()
val f2 = readln()
val f3 = readln()
// output
print(solution(f1, f2, f3))
}
const val kBlack = "black"
const val kBrown = "brown"
const val kRed = "red"
const val kOrange = "orange"
const val kYellow = "yellow"
const val kGreen = "green"
const val kBlue = "blue"
const val kViolet = "violet"
const val kGrey = "grey"
const val kWhite = "white"
fun findResistanceVal(color: String): Long {
return when (color) {
kBlack -> 0L
kBrown -> 1L
kRed -> 2L
kOrange -> 3L
kYellow -> 4L
kGreen -> 5L
kBlue -> 6L
kViolet -> 7L
kGrey -> 8L
kWhite -> 9L
else -> {
-1L
}
}
}
fun findResistanceMul(color: String): Long {
return when (color) {
kBlack -> 1L
kBrown -> 10L
kRed -> 100L
kOrange -> 1000L
kYellow -> 10000L
kGreen -> 100000L
kBlue -> 1000000L
kViolet -> 10000000L
kGrey -> 100000000L
kWhite -> 1000000000L
else -> {
-1L
}
}
}
fun solution(f1: String, f2: String, f3: String): Long {
return (findResistanceVal(f1) * 10 + findResistanceVal(f2)) * findResistanceMul(f3)
}
// https://codemasterkimc.tistory.com/
테스트
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test
internal class MainKtTest {
@Test
fun test() {
assertEquals(4700, solution("yellow", "violet", "red"))
assertEquals(32000000, solution("orange", "red", "blue"))
assertEquals(99000000000, solution("white", "white", "white"))
}
}
읽어주셔서 감사합니다
무엇인가 얻어가셨기를 바라며
오늘도 즐거운 코딩 하시길 바랍니다 ~ :)
728x90
반응형
'Kotlin > Kotlin 알고리즘' 카테고리의 다른 글
백준 9663번 N-Queen Kotlin 구현해보기 (0) | 2023.03.10 |
---|---|
백준 14888번 연산자 끼워넣기 Kotlin 구현해보기 (0) | 2023.03.10 |
백준 25904번 Kotlin 구현해보기 (0) | 2022.11.19 |
백준 1075번 나누기 Kotlin 구현해보기 (0) | 2022.11.19 |
백준 26041번 비슷한 전화번호 표시 Kotlin 구현해보기 (0) | 2022.11.19 |