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
- 스택 큐 차이
- rxjava hot observable
- ANR이란
- 스택 자바 코드
- rxjava disposable
- 안드로이드 os 구조
- 안드로이드 라이선스
- ar vr 차이
- 클래스
- jvm이란
- android ar 개발
- jvm 작동 원리
- 서비스 vs 쓰레드
- 2022 플러터 설치
- 안드로이드 레트로핏 crud
- Rxjava Observable
- 멤버변수
- 자바 다형성
- 객체
- 2022 플러터 안드로이드 스튜디오
- 큐 자바 코드
- 안드로이드 유닛 테스트
- 플러터 설치 2022
- android retrofit login
- 안드로이드 레트로핏 사용법
- 서비스 쓰레드 차이
- 안드로이드 라이선스 종류
- 안드로이드 유닛 테스트 예시
- rxjava cold observable
- 안드로이드 유닛테스트란
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 프로그래머스 - 컨트롤 제트 (Kotlin) 본문
728x90
반응형
숫자와 "Z"가 공백으로 구분돼 담긴 문자열이 주어진다. 문자열의 숫자를 차례대로 더한다
이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻이다. 숫자와 "Z"로 이뤄진 문자열 s가 주어질 때, 구한 값을 리턴하는 solution()을 완성하라
"Z"가 있는 인덱스와 "Z" 앞 요소의 인덱스를 제외한 나머지 숫자값들의 합을 구하면 되는데, 이상한 곳에서 삽질하느라 풀지 못했다.
class Solution {
fun solution(s: String): Int {
val list = s.split(" ").toMutableList()
var sum = 0
while (list.contains("Z")) {
list.removeAt(list.indexOf("Z") - 1)
list.removeAt(list.indexOf("Z"))
}
for (i in list.indices) sum += list[i].toInt()
return sum
}
}
또는 Stack을 이용해서 풀 수도 있다. 프로그래머스에 제출 시 import문을 넣어주지 않으면 런타임 에러로 오류처리되기 때문에 주의해야 한다.
import java.util.*
class Solution {
fun solution(s: String): Int {
var answer = 0
val stack = Stack<Int>()
for (w in s.split(" ".toRegex())) {
if (w == "Z") {
stack.pop()
} else {
stack.push(w.toInt())
}
}
for (i in stack) {
answer += i
}
return answer
}
}
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 중복된 문자 제거 (Kotlin) (0) | 2022.12.30 |
---|---|
[Algorithm] 프로그래머스 - 배열 원소의 길이 (Kotlin) (0) | 2022.12.30 |
[Algorithm] 프로그래머스 - 소인수분해 (Kotlin) (0) | 2022.12.29 |
[Algorithm] 프로그래머스 - 숨어있는 숫자의 덧셈 (1) (Kotlin) (0) | 2022.12.29 |
[Algorithm] 프로그래머스 - 문자열 정렬하기 (1) (Kotlin) (0) | 2022.12.29 |
Comments