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 |
Tags
- 클래스
- 안드로이드 레트로핏 사용법
- 큐 자바 코드
- 멤버변수
- jvm이란
- 2022 플러터 설치
- rxjava hot observable
- Rxjava Observable
- 스택 큐 차이
- 스택 자바 코드
- android retrofit login
- jvm 작동 원리
- ar vr 차이
- 안드로이드 유닛테스트란
- rxjava disposable
- android ar 개발
- 2022 플러터 안드로이드 스튜디오
- 객체
- 안드로이드 유닛 테스트
- 안드로이드 os 구조
- 플러터 설치 2022
- 안드로이드 레트로핏 crud
- 서비스 vs 쓰레드
- 자바 다형성
- ANR이란
- 안드로이드 라이선스
- rxjava cold observable
- 안드로이드 유닛 테스트 예시
- 서비스 쓰레드 차이
- 안드로이드 라이선스 종류
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 프로그래머스 - 코드 처리하기 (Kotlin) 본문
728x90
반응형
30분 동안 풀어보려 했으나 풀리지 않아서 다른 풀이를 확인하고 코틀린으로 바꿔서 제출했다.
class Solution {
fun solution(code: String): String {
val sb = StringBuilder()
var mode = 0
code.forEachIndexed { index, _ ->
if (code[index] == '1') {
mode = 1 - mode
} else if (index % 2 == mode) {
sb.append(code[index])
}
}
return sb.toString().ifEmpty { "EMPTY" }
}
}
처음에 mode는 0으로 시작한다고 문제 하단에 쓰여 있고 1이 들어올 수도 있기 때문에 var mode 형태로 변수를 선언하고, 0으로 초기화한다. 그리고 후에 1을 만나면 mode를 0에서 1로 바꾼다.
이 때 mode 변수에 "1 - mode"을 대입해서 0, 1을 전환할 수 있었다. 풀 때는 생각하지 못했던 방법이라 신기했다.
그리고 현재 mode가 1이 아닌 경우, mode가 0일 때는 짝수 인덱스의 문자만 추가하고 1일 때는 홀수 인덱스의 문자만 추가한다. 이것도 else if의 조건 한 줄로 깔끔하게 정리된다.
마지막으로 StringBuilder에 담긴 값들을 String으로 바꿔서 리턴하고, 이 때 만약 StringBuilder가 공백이라면 "EMPTY" 문자열을 리턴시키는 걸로 풀이가 끝난다.
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 주사위 게임 2 (Kotlin) (0) | 2023.12.06 |
---|---|
[Algorithm] 프로그래머스 - 등차수열의 특정한 항만 더하기 (Kotlin) (0) | 2023.12.06 |
[Algorithm] 프로그래머스 - flag에 따라 다른 값 반환하기 (Kotlin) (0) | 2023.12.03 |
[Algorithm] 프로그래머스 - 조건 문자열 (Kotlin) (0) | 2023.12.03 |
[Algorithm] 프로그래머스 - 홀짝에 따라 다른 값 반환하기 (Kotlin) (0) | 2023.12.03 |
Comments