Java/[문제]

[국비][문제] 배열에서 필요한 것 찾고, 지운 후 새로운 배열에 담기

줌인. 2024. 6. 6. 15:22

[문제 1]

- 기존 배열에 값은 4개이다. 하지만 매개변수로 해당 값을 하나 찾아서 제거할 것이다.
- 그러면 총 배열은 3개이다.
- 배열은 동적인 요소이므로 숫자를 바꿀 수 없기 때문에 새로운 배열을 생성해준다.
- 삭제한 배열 외 모든 값을 새로운 배열로 옮긴다.
- removeWeather메서드를 완성해주세요

public WeatherDTO[] removeWeather(WeatherDTO[] ar) {

}

 

[코드 완성 예시]

더보기
public WeatherDTO[] removeWeather(WeatherDTO[] ar) {
    WeatherDTO[] dtos = new WeatherDTO[ar.length - 1]; //하나 줄어들게 만들 것
    //카피를 할 것
    WeatherDTO findCity = this.findByCity(ar);
    int index = 0;
    for (int i=0; i<ar.length;i++) {
        if(ar[i].getCity().equals(findCity.getCity())) {
            continue;
        }
        dtos[index] = ar[i];
        index++;
    }
    return dtos;
}

 

① 고정 관념을 타파하자

 

기존 배열(ar) 중에서 내가 찾고 싶은 값을 찾아야 함

 

continue를 사용해서 찾은 값을 스킵할 수 있음

 

④ 그 값을 새로운 배열에 담으면 됨

 

⑤ 이중 for문 및 새로운 for문으로 돌경우 똑같은 숫자가 됨을 명심할 것

 

⑥ 정렬 알고리즘을 굳이 사용하지 않아도 되는 이유는 새로운 배열의 값들이 모두 null로 비어있기 때문

 

index 변수를 선언한다면, 더 깔끔하게 코드를 구현할 수 있음

 

 

728x90