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
- ANR이란
- 2022 플러터 안드로이드 스튜디오
- 안드로이드 유닛테스트란
- 안드로이드 유닛 테스트 예시
- jvm이란
- rxjava disposable
- 안드로이드 라이선스 종류
- 서비스 쓰레드 차이
- jvm 작동 원리
- ar vr 차이
- 안드로이드 레트로핏 사용법
- 안드로이드 레트로핏 crud
- rxjava cold observable
- android retrofit login
- 안드로이드 라이선스
- 2022 플러터 설치
- Rxjava Observable
- 자바 다형성
- 안드로이드 os 구조
- 서비스 vs 쓰레드
- 스택 큐 차이
- rxjava hot observable
- 멤버변수
- 안드로이드 유닛 테스트
- android ar 개발
- 클래스
- 객체
- 큐 자바 코드
- 스택 자바 코드
- 플러터 설치 2022
Archives
- Today
- Total
나만을 위한 블로그
[Algorithm] 프로그래머스 - 등차수열의 특정한 항만 더하기 (Kotlin) 본문
728x90
반응형
두 정수 a, d와 길이가 n인 boolean 배열 included가 주어진다. 첫 항이 a, 공차가 d인 등차수열에서 included[i]가 i + 1항을 의미할 때 이 등차수열의 1항부터 n항까지 included가 true인 항들만 더한 값을 리턴하는 함수를 작성하라
2, 4, 6, 8...처럼 모든 숫자가 동일하게 2씩 차이가 나는 숫자의 열이 있다면 이를 등차수열이라고 부른다. 사전적 정의는 서로 이웃하는 두 항 사이의 차이가 일정한 수열이다.
문제에서 true에 해당하는 숫자만 따로 빼서 더해야 하기 때문에 Map을 사용해서 true인 숫자만 골라내서 더하고 리턴시키는 방법을 생각했다.
class Solution {
fun solution(a: Int, d: Int, included: BooleanArray): Int {
var num = a
val map = hashMapOf<Int, Boolean>()
for (i in included.indices) {
map[num] = included[i]
num += d
}
return map.filter { it.value }.map { it.key }.sum()
}
}
true인 값들만 filter, map으로 골라낼 것이기 때문에 Map을 정렬하는 로직은 필요없다.
true인 숫자들을 골라냈다면 sum()으로 모두 합해서 리턴시키면 끝이다.
반응형
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[Algorithm] 프로그래머스 - 원소들의 곱과 합 (Kotlin) (0) | 2023.12.06 |
---|---|
[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 |
Comments