이번에 풀어 볼 문제는 짝수가 너무 싫은 아이의 고민을 해결주는 문제이다.
사실 나는 이런 문제 조차 계속 찍어서 생각 하지 않고 문제를 풀어왔다.
아마 이쪽 고치면 되겠지.. 저거 고치면 되겠지 하면서 고민하지 않고 문제 풀이 및 구현을 해왔다 (지금은 이런 습관을 고치는중 이다 아마 ..? 🧐).
언젠가 문제에 생각하고 문제풀이는 싫어요 이런 문제가 나와서 생각하기 싫어하는 나같은 사람의 고민을 해결해주는 문제가 나왔으면 좋겠다.
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int n) {
List<Integer> tempList = new ArrayList<>();
for (int i = 1; i <= n; i++) {
if(i % 2 ==1){
tempList.add(i);
}
}
int[] answer = new int[tempList.size()];
for (int i = 0; i < tempList.size(); i++) {
answer[i] = tempList.get(i);
}
return answer;
}
}
문제에서 정수 n이 매개변수로 주어졌다 이때 n이하의 홀수를 오름차순
으로 담긴 배열을 return 시키라는 문제다
결국 특정한 인덱스 값을 가진 배열을 순회
해야한다 생각하여 for문을 써주기로 생각하였다
숫자는 0부터 시작하지않고 1부터 시작하니 i 를 1로 초기 조건을 잡아주었고
내가 입력한 값 n까지 for문을 돌리도록 생각했다 .
여기서 수학 공식을 하나 생각해보자 2로 나눳을때 0이떨어지면 짝수고 나머지값 이 존재한다면 홀수다.
그래서 조건을 i 를 2로 나눳을때 나머지값이 1인경우 에는 홀수이므로 홀수 인값을 tempList(복사리스트)에 add시켰다.
그이후에 answer에 tempList의 size (크기) 만큼 배열을 선언한후 for문을 돌려서 tempList안에 있는 값들을 answer 배열에 넣어주었다.