코딩테스트

[힌트 문제1-1]짝수는 싫어요

개발하는지호 2023. 9. 19. 15:46
import java.util.Scanner;

public class Main {
    static int[] number(int a){
        int[] odd = new int[a];
        int index = 0;
        for (int i=1; i<=a; i++) {
            if(i % 2 == 0){
                continue;
            }

            odd[index] = i;
            index++;


        }
        return odd;
    }
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("n 숫자를 입력하시오: ");
        int num = scanner.nextInt();

        int[] result = number(num);
        for (int value : result) {
            if(value != 0) { // 배열에 할당되지 않은 위치는 0이므로 출력에서 제외
                System.out.print(value + " ");
            }
        }
    }
}

메소드를 만드는 것이 약간 함수를 만드는 것 같음

 

이를 활용해서 구했고, 배열에 대해 다시 한 번 이해하는 계기가 됨

 

근데, 이상하게 인텔리제이에서는 작동하는데, 코딩테스트 프로그램에서는 돌아가지 않는다.

 

class Solution {
    public int[] solution(int n) {
        int[] answer;
        int k = 0;
        
        if (n % 2 == 0) {
            answer = new int[n / 2];
        } else {
            answer = new int[n / 2 + 1];
        }
        
        for (int i = 0; i <= n; i++) {
            if(i % 2 == 1) {
                answer[k] = i;
                k++;
            }
        }
        return answer;
    }
}

 

이러한 방법도 있다. 이거는 된다. 보아하니, 프로그래머스에서는 메소드를 solution으로 고정하고 작동시켜야 하나보다.