안녕하세요. 이번에는 프로그래머스 x만큼 간격이 있는 n개의 숫자를 풀어보려고 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12954
Problem
함수 solution은 정수 x와 자연수 n을 입력받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해 주세요.
[제한 사항]
○ x는 -10000000 이상, 10000000 이하인 정수입니다.
○ n은 1000 이하인 자연수입니다.
Solution
class Solution {
fun solution(x: Int, n: Int): LongArray {
var answer = longArrayOf()
var value = x.toLong()
for (i in 0 until n) {
answer += value
value += x
}
return answer
}
}
for문을 사용하여 0부터 n까지 반복하면서 x의 값을 answe에 넣는 방식으로 문제를 풀 수 있었다. 그리고 다른 사람들의 접근 방식이 궁금하여 다른 사람의 풀이를 봤는데 한 줄로 만든 코드를 보게 되어서 공부용으로 첨부해 본다.
1. 다른 사람 코드
class Solution {
fun solution(x: Int, n: Int): LongArray {
return LongArray(n) { x.toLong() * (it + 1) }
}
}
n 크기의 배열을 선언해 주면서 n의 배열 안에 람다식으로 it의 값을 증가시키면서 x 값을 곱하는 방식으로 푸는 모습을 확인할 수 있었다. for문보다 가독성이 좋아 보인다. 앞으로 이런 방식으로도 문제를 접근해 봐야겠다.
Performance
1. 내가 작성한 코드 | 2. 다른 사람 코드 |
확실히 불필요한 변수를 할당하지 않고 반복문을 사용하지 않는 다른 사람의 코드가 실행 속도가 빠른 것을 실행 결과를 통해서 알 수 있었다.
반응형
'프로그래머스 Algorithm' 카테고리의 다른 글
[프로그래머스] 문자열을 정수로 바꾸기 Kotlin (2) | 2023.11.12 |
---|---|
[프로그래머스] 자릿수 더하기 Kotlin (4) | 2023.11.11 |
[프로그래머스] 짝수와 홀수 Kotlin (0) | 2023.11.09 |
[프로그래머스] 약수의 합 Kotlin (0) | 2023.11.08 |
[프로그래머스] 평균 구하기 Kotlin (0) | 2023.11.07 |