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
- 자바 다형성
- 멤버변수
- 안드로이드 유닛테스트란
- ar vr 차이
- ANR이란
- 2022 플러터 안드로이드 스튜디오
- 객체
- 스택 큐 차이
- rxjava disposable
- 스택 자바 코드
- 안드로이드 os 구조
- 안드로이드 라이선스 종류
- android retrofit login
- rxjava hot observable
- 2022 플러터 설치
- 서비스 vs 쓰레드
- 안드로이드 유닛 테스트 예시
- 클래스
- 안드로이드 라이선스
- 서비스 쓰레드 차이
- 안드로이드 유닛 테스트
- rxjava cold observable
- Rxjava Observable
- 큐 자바 코드
- 안드로이드 레트로핏 crud
- jvm 작동 원리
- jvm이란
- 안드로이드 레트로핏 사용법
- 플러터 설치 2022
- android ar 개발
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 프로그래머스 - 외계행성의 나이 (Kotlin) 본문
728x90
반응형
모 행성에서는 나이를 알파벳으로 말한다. a는 0, b는 1, c는 2, ..., j는 9다
23살은 cd, 51살은 fb로 표현한다. 나이 age가 매개변수로 주어질 때 모 행성에서의 나이를
리턴하는 solution()을 완성하라
먼저 주먹구구식으로 푼 코드는 아래와 같다.
class Solution {
fun solution(age: Int): String {
val s = StringBuilder()
val map = hashMapOf(
0 to "a",
1 to "b",
2 to "c",
3 to "d",
4 to "e",
5 to "f",
6 to "g",
7 to "h",
8 to "i",
9 to "j"
)
val list = age.toString().split("")
list.forEach {
if (it != "") {
s.append(map[it.toInt()])
}
}
return s.toString()
}
}
문제에서 키와 밸류로 쓰면 좋을 것 같은 정보(a는 0, b는 1)가 있어서 Map을 사용해 풀었다. 그러나 split()을 하게 되면 잘라진 요소들의 앞뒤로 공백이 포함되어 if를 썼기 때문에 불필요한 공수가 더 들어간다.
Map을 안 쓴다면 if로 처리하는 방법도 있는데, if-else if가 너무 길어지면 개인적으로 보기 별로라서 when을 써봤다.
class Solution {
fun solution(age: Int): String {
val a = age.toString()
return a.map {
when (it) {
'0' -> "a"
'1' -> "b"
'2' -> "c"
'3' -> "d"
'4' -> "e"
'5' -> "f"
'6' -> "g"
'7' -> "h"
'8' -> "i"
'9' -> "j"
else -> ""
}
}.joinToString("")
}
}
map {} 자체가 List를 반환하기 때문에 이걸 쓰고 나서 리스트 안의 문자들을 연결해서 한 문자열로 만드는 joinToString()을 쓸 수 있다. 매개변수로 공백("")을 넣으면 공백없이 문자들이 연결된다. 이렇게 제출해도 정답으로 인정됐다.
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 순서쌍의 개수 (Kotlin) (0) | 2022.12.24 |
---|---|
[Algorithm] 프로그래머스 - 진료순서 정하기 (Kotlin) (0) | 2022.12.24 |
[Algorithm] 프로그래머스 - 배열 자르기 (Kotlin) (0) | 2022.12.23 |
[Algorithm] 프로그래머스 - 짝수의 합 (Kotlin) (0) | 2022.12.23 |
[Algorithm] 프로그래머스 - 양꼬치 (Kotlin) (0) | 2022.12.23 |
Comments