일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- silver3
- bronze2
- Alert Dialog
- 테마변경
- Android
- fragment에서 context사용
- stack
- 백준
- RETROFIT
- gradle설정
- toLong()
- LIS
- 프로그래머스
- silver4
- naver open api
- recyclerView 클릭이벤트
- Top-Down
- 임시저장하기
- 뷰클래스
- dp
- LV1
- RecyclerView
- 다크모드제한
- 녹음기
- bronze4
- bronze3
- bottom-up
- map
- Kotlin
- Silver5
Archives
- Today
- Total
유니 코드
[PGS/프로그래머스][Lv1] x만큼 간격이 있는 n개의 숫자(Kotlin) 본문
[문제 설명]
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
[제한 조건]
- x는 -10000000 이상, 10000000 이하인 정수입니다.
- n은 1000 이하인 자연수입니다.
[입출력 예]
x | n | answer |
2 | 5 | [2,4,6,8,10] |
4 | 3 | [4,8,12] |
-4 | 2 | [-4, -8] |
[풀이]
방금 풀이한 행렬의 덧셈 문제와 비슷한 문제이다.
아니 오히려 더 쉬운 문제인 것 같기도 하다.
이 문제는 x만큼 증가하는 수 n개를 반환배열에 추가해주기만 하면된다.
행렬의 덧셈 문제와 마찬가지로 배열의 초기화를 할 때 값을 추가해주었다.
다만 이 문제는 제한 조건을 봤을 때 x와 n값이 모두 크다면 오버플로우가 발생할 수 있어서
초기화할 때 toLong()으로 타입을 변경해주었다.
첫 제출 코드는 Array<Long>(n){i -> ((i+1) * x).toLong()} 과 같이 곱해준 값에 toLong()을 해주어서
테스트케이스 2개가 실패했다. 왜그런지 몰랐는데 곰곰히 생각해보니 곱한 값이 크다면 이미
오버플로우가 발생한 후인데 그다음에 타입을 변환하기 때문에 실패가 뜬 것이었다.
그래서 x를 먼저 형변환하고 곱해주니 테스트 케이스 모두 통과했다.
[코드]
class Solution {
fun solution(x: Int, n: Int): Array<Long> {
return Array<Long>(n){i -> ((i+1) * x.toLong())}
}
}
'알고리즘 > 미분류' 카테고리의 다른 글
[PGS/프로그래머스][Lv1] 음양 더하기(Kotlin) (0) | 2022.08.04 |
---|---|
[PGS/프로그래머스][Lv1]없는 숫자 더하기(Kotlin) (0) | 2022.08.04 |
[PGS/프로그래머스][Lv1] 행렬의 덧셈(Kotlin) (0) | 2022.05.12 |
[PGS/프로그래머스][Lv1] 하샤드 수(Kotlin) (0) | 2022.05.10 |
Comments