코드 그라데이션

[Lv.0] 배열 만들기 1 본문

Java/알고리즘

[Lv.0] 배열 만들기 1

완벽한 장면 2023. 9. 13. 23:19

배열 만들기 1

https://school.programmers.co.kr/learn/courses/30/lessons/181901

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명

정수 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