blog.itcode.devblog.itcode.dev

[프로그래머스 / JAVA] Level 1 x만큼 간격이 있는 n개의 숫자 (12954)

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

[프로그래머스 / JAVA] Level 1 x만큼 간격이 있는 n개의 숫자 (12954)

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
RWB0104
@RWBwritten at 2021-12-18 12:56:29
프로그래머스

시리즈 모아보기

프로그래머스

63 / 78
랭크사용 언어
Level 1

🖼️ JAVA

🔗 x만큼 간격이 있는 n개의 숫자

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

  • x는 -10000000 이상, 10000000 이하인 정수입니다.
  • n은 1000 이하인 자연수입니다.
xnanswer
25{ 2, 4, 6, 8, 10 }
43{ 4, 8, 12 }
-42{ -4, -8 }

x만큼 간격을 가진 수를 n개 만큼 나열하여 배열로 반환한다. 다른건 문제가 없지만, 음수의 경우가 문제다.

음수의 경우 내림차순으로 정렬해야 한다.

ArrayList에 요소를 담은 후, 각 수의 절대값을 기준으로 오름차순으로 정렬하자. ArrayList를 스트림화하여 sorted() 메서드를 사용하되, 정렬 알고리즘을 오버라이딩한다. (o1, o2) -> (int) (Math.abs(o1) - Math.abs(o2))로 오버라이딩하면 된다. Math.abs() 메서드를 통해 각 수의 절대값을 추출할 수 있다.

JAVA

import java.util.ArrayList;

/**
 * x만큼 간격이 있는 n개의 숫자 클래스
 *
 * @author RWB
 * @since 2021.12.13 Mon 22:21:01
 */
class Solution
{
	/**
	 * 해답 반환 메서드
	 *
	 * @param x: [int] 간격
	 * @param n: [int] 갯수
	 *
	 * @return [long[]] 해답
	 */
	public long[] solution(int x, int n)
	{
		ArrayList<Long> list = new ArrayList<>();
		
		while (n != 0)
		{
			list.add((long) x * n);
			
			n--;
		}
		
		return list.stream().sorted((o1, o2) -> (int) (Math.abs(o1) - Math.abs(o2))).mapToLong(Long::longValue).toArray();
	}
}
# 프로그래머스# 알고리즘# JAVA(자바)# Level 1
ship
blog.itcode.dev

𝝅번째 알파카의 개발 낙서장

7.0.6
Developed by RWB since 2021.057th upgraded at 2026.08