728x90
프로그래머스 _ 코딩 기초 트레이닝 DAY 13 - (5)
출처 - https://school.programmers.co.kr/learn/courses/30/lessons/181888
문제 | 정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
입력 #1 | num_list = [4, 2, 6, 1, 7, 6], n = 2
출력 #1 | [4,6,7]
>> 풀이 <<
배열의 특성상 크기를 먼저 지정해줘야 하기 때문에, '전체크기 / 간격' 올림을 이용해 크기를 설정해주었다. 그 이후에는 for문을 통해 배열에 값을 넣어주었다.
- 나눗셈 올림하기 - Math.ceil()
- Math.ceil(나눗셈식)을 통해 값을 올림할 수 있다. 이때 반환값은 double형이기 때문에 int형으로 반환하고 싶으면 (int) Math.ceil() 해줘야 한다.
- Math.ceil() 속에 나눗셈 식을 넣을 때에는 (double)을 넣어줘야 한다! 소수점이 있어야 올림 또는 내림을 할 수 있기 때문이다.
추가적으로 내림과 반올림도 가능하다.
- 반올림 - Math.round()
- 내림 - Math.floor()
코드는 다음과 같다.
import java.lang.*;
class Solution {
public int[] solution(int[] num_list, int n) {
int size = (int) Math.ceil((double) num_list.length / n);
int[] answer = new int[size];
int j = 0;
for (int i = 0 ; i < num_list.length ; i += n) {
answer[j++] = num_list[i];
}
return answer;
}
}
'코딩테스트 > 프로그래머스 Lv.0' 카테고리의 다른 글
[프로그래머스] A 강조하기 (string.replace) - JAVA (0) | 2023.09.13 |
---|---|
[프로그래머스] 길이에 따른 연산 (IntStream, stream.reduce) - JAVA (0) | 2023.09.13 |
[프로그래머스] 배열 조각하기 ( Arrays.copyOfRange ) - JAVA (0) | 2023.08.28 |
[프로그래머스] 문자 개수 세기 ( 대소문자 판별, 배열 값 채우기 ) - JAVA (0) | 2023.07.21 |
[프로그래머스] 접미사 배열 (Arrays.sort()) - JAVA (0) | 2023.07.13 |