코드 그라데이션
[Lv.0] 배열 만들기 1 본문
배열 만들기 1
https://school.programmers.co.kr/learn/courses/30/lessons/181901
문제 설명
정수 n과 k가 주어졌을 때, 1 이상 n이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
제한사항
입출력 예
입출력 예 설명
아이디어
- 배수를 찾고 배열에 집어넣는다는 러프한 아이디어
- k의 배수 중에서 n보다 작은 것 중 가장 마지막 수(최대인 수)가 무엇인지 고민해보기.
- 이 방법이 몫.
- 그럼 n을 k로 나누면 배수의 개수가 나옴.
작성 코드
class Solution {
public int[] solution(int n, int k) {
int a = 0; // 배수의 개수 저장을 위한 변수
a = n /k;
int[] answer = new int[a];
for(int i=1; i<=answer.length; i++) {
answer[i-1] += k*i;
}
return answer;
}
}
// n / k = 배수의 개수
// 0번이 채워지게만 만들면 된다.
// 그럼 범위 말고 횟수를 조작하면 안 될까를 생각해봄.
// 길이 만큼 반복해야 한다.
// => 1이면 범위는 이하 까지 0이면 미만 까지.
- i가 이미 1부터 시작이기 때문에 그 자체로 오름차순이 된다.
- 굳이 정렬 필요 없음.
- 원소의 개수가 중요하지, 꼭 원소가 무엇인지 중요하지는 않은 문제였음.
n 안에 k가 몇 개 들어가는지(배수의 개수)가 궁금하지, k들이 뭐, 뭐, 뭐인지는 크게 중요하지가 않음.
728x90
'Java > 알고리즘' 카테고리의 다른 글
[Lv.0] 양꼬치 (0) | 2023.12.28 |
---|---|
[Lv.0] 배열 비교하기 (0) | 2023.09.14 |
[Lv.0] 더 크게 합치기 (0) | 2023.07.26 |
[Lv.0] 마지막 두 원소 (0) | 2023.07.16 |
[Lv.0] 마지막 두 원소 (0) | 2023.07.10 |
Comments