Notice
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- jvm 작동 원리
- android ar 개발
- rxjava hot observable
- 안드로이드 레트로핏 crud
- ANR이란
- 큐 자바 코드
- rxjava disposable
- android retrofit login
- 안드로이드 라이선스
- 안드로이드 유닛 테스트
- rxjava cold observable
- 안드로이드 os 구조
- 스택 자바 코드
- 스택 큐 차이
- 자바 다형성
- 클래스
- 안드로이드 유닛테스트란
- jvm이란
- 안드로이드 유닛 테스트 예시
- 2022 플러터 안드로이드 스튜디오
- 2022 플러터 설치
- 플러터 설치 2022
- 서비스 vs 쓰레드
- Rxjava Observable
- 객체
- 서비스 쓰레드 차이
- 안드로이드 라이선스 종류
- ar vr 차이
- 안드로이드 레트로핏 사용법
- 멤버변수
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 프로그래머스 - 가위바위보 (Kotlin) 본문
728x90
반응형
가위는 2, 바위는 0, 보는 5로 표현한다. 가위바위보를 내는 순서대로 나타낸 문자열 rsp가 매개변수로 주어질 때, rsp에 저장된 가위바위보를 모두 이기는 경우를 순서대로 나타낸 문자열을 리턴하는 solution()을 완성하라
각 상성에 따라서 이길 수 있는 숫자를 문자열로 만든 뒤 이어붙여서 리턴하면 된다.
아래는 주먹구구식 풀이다.
class Solution {
fun solution(rsp: String): String {
val list = rsp.split("")
val s = StringBuilder()
for (i in list) {
when (i) {
"2" -> s.append("0")
"0" -> s.append("5")
"5" -> s.append("2")
}
}
return s.toString()
}
}
여기서 StringBuilder와 for문을 없애는 형태로 줄여봤더니 이런 코드가 나왔다.
class Solution {
fun solution(rsp: String) = rsp.split("").map {
when (it) {
"2" -> "0"
"0" -> "5"
"5" -> "2"
else -> ""
}
}.joinToString("")
}
위 코드를 IDE에서 작성하면 아래와 같은 권장 문구가 표시되면서 map {}을 없애고 joinToString() {}을 사용한 코드로 바꿔준다.
Call chain on collection type may be simplified
컬렉션 타입의 콜 체인이 단순화될 수 있다
class Solution {
fun solution(rsp: String) = rsp.split("").joinToString("") {
when (it) {
"2" -> "0"
"0" -> "5"
"5" -> "2"
else -> ""
}
}
}
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 점의 위치 구하기 (Kotlin) (0) | 2022.12.27 |
---|---|
[Algorithm] 프로그래머스 - 구슬을 나누는 경우의 수 (Kotlin) (0) | 2022.12.27 |
[Algorithm] 프로그래머스 - 모스부호 (1) (Kotlin) (0) | 2022.12.26 |
[Algorithm] 프로그래머스 - 개미 군단 (Kotlin) (0) | 2022.12.26 |
[Algorithm] 프로그래머스 - 순서쌍의 개수 (Kotlin) (0) | 2022.12.24 |
Comments