IT/Programmers

[Programmers/코딩테스트 연습] 짝수는 싫어요 Java (arraylist 동적 배열)

안선생 Dr.Ahn 2022. 11. 27. 15:32
728x90
반응형

짝수는 싫어요 Java

너무 마구잡이 식으로 작성한 코드라 부끄럽다...

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

java는 빈 배열에 계속 추가할 수가 없다고 해서 난감했다.

강제로 사이즈를 지정해야 하는데, 또 뒤에 비어있는 공간이 0으로 자동 초기화돼서 ㅠ 

 

//홍희표 님 예제

import java.util.stream.IntStream;

class Solution {
    public int[] solution(int n) {
        return IntStream.rangeClosed(0, n).filter(value -> value % 2 == 1).toArray();
    }
}

.................하나씩 공부해봐야겠다.

 

대부분

List<Integer> answer = new ArrayList<>();
//요소 추가는 answer.add();

int[]로 선언되어 있는 answer을 ArrayList로 변환해서 사용했다.

Array랑 List랑 무슨 차이인지 모르겠다. 역시 공부가 필요하다..

 

+

 

ArrayList는 동적 배열이다!

import java.util.ArrayLIst; //import

ArrayList<int> arr = new ArrayList<>();  //선언

/*
new ArrayList<>() <- 이 괄호 안에 숫자 : 크기, list : 복사
*/

 

728x90
반응형