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
- 안드로이드 레트로핏 사용법
- 플러터 설치 2022
- 2022 플러터 설치
- jvm 작동 원리
- 객체
- 스택 큐 차이
- ANR이란
- 큐 자바 코드
- 안드로이드 유닛 테스트
- 안드로이드 라이선스
- 서비스 쓰레드 차이
- android ar 개발
- jvm이란
- rxjava cold observable
- 안드로이드 유닛 테스트 예시
- Rxjava Observable
- rxjava hot observable
- 안드로이드 라이선스 종류
- rxjava disposable
- 멤버변수
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 os 구조
- ar vr 차이
- 서비스 vs 쓰레드
- 안드로이드 레트로핏 crud
- 자바 다형성
- 안드로이드 유닛테스트란
- android retrofit login
- 클래스
- 스택 자바 코드
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 |