안녕하세요. 이번에는 프로그래머스 x만큼 간격이 있는 n개의 숫자를 풀어보려고 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12954
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
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 |