Coding Test/Java

[프로그래머스 / Java] Lv.0 제곱수 판별하기

annovation 2025. 4. 19. 11:39

Question

https://school.programmers.co.kr/learn/courses/30/lessons/120833?language=java

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


Code

방법 1.

class Solution {
    public int[] solution(int[] numbers, int num1, int num2) {
        
        int [] answer = new int[num2 - num1 + 1];
        int index = 0;
        
        for (int i = num1; i <= num2; i++) {
            answer[index] = numbers[i];
            index++;
        }
        return answer;
    }
}

 

* 배열 선언 및 초기화

 

1. 배열 선언 후 크기 지정

int[] arr = new int[5];

 

2. 선언과 초기화를 동시에 수행

int[] arr = {1, 2, 3, 4, 5};

 

➡️ 선언과 초기화를 분리할 수 없음

int[] array3;
array3 = {1, 2, 3, 4}; // 오류 발생

 

3. 선언 후 나중에 초기화

int[] arr;
arr = new int[5];

 

➡️ 배열 선언과 초기화를 분리하려면 new 키워드를 사용해야 함

int[] array3;
array3 = new int[]{1, 2, 3, 4}; // 정상

 

방법 2. Arrays.copyOfRange

import java.util.*;

class Solution {
    public int[] solution(int[] numbers, int num1, int num2) {
    	
        int[] answer = new int[numbers.length};
        
        answer = Arrays.copyOfRange(numbers, num1, num2 + 1);
        
        return answer;
    }
}
  • Arrays.copyOfRange : Arrays.copyOfRange(복사할 배열, 복사 시작 인덱스, 배열 크기)
    • 복사 시작 인덱스 (포함), 배열 크기 (복사를 끝낼 인덱스, 미포함)
    • 복사 시작 인덱스 부터 배열 크기 - 1 까지의 요소들이 새로운 배열로 복사된다.
반응형