반응형
짝수는 싫어요 (JAVA)
문제
풀이
조금 시간이 오래걸리긴 했는데 그 전 문제보다는 어렵진 않았던 것 같다.
그런데 다른 사람들의 풀이들을 보니 입이 떡 벌어지긴 한 것 같다.....
=> 우선 내 풀이를 보면
class Solution {
public int[] solution(int n) {
int[] answer;
//배열의 크기 지정
if(n%2 == 0){
answer = new int[n / 2];
}else{
answer = new int[n / 2 + 1];
}
//배열의 index
int index = 0;
//반복문으로 n 돌면서 홀수 찾기
for(int i = 0; i<n+1; i++){
if(i%2 == 1){
answer[index] = i;
index++;
}
}
return answer;
}
}
진짜 단순하게 문제에 충실했다는 느낌이 있는 것 같다.
차차 해볼 일이지만 이제 문법도 조금 생각하고 코드 구성도 생각해보면서 문제를 풀어나가는 연습이 필요할 것 같다.....
=> 다른 사람의 풀이 예시
어떤 사람은 IntStream을 사용하여 해결한 사람도 있었다.
아직 어려운 부분이지만
IntStream.rangeClosed(0, n).filter(value -> value % 2 == 1).toArray()
이렇게 IntStream을 이용하여 0부터 n 까지의 수 중에 홀수인 수를 filter를 통해 거른 후 array에 추가해준 코드로 구성한 사람도 있다.
어떤 사람은 나와 비슷한 코드였지만 if 문이나 else 문에서 { } 를 사용하지 않아도 된다는 점을 상기시켜주었다.
if(n % 2 == 0) cnt = n/2;
else cnt = n/2 + 1;
이런식으로말이다.
다른 사람은 굳이 배열로 반환하지 않고 ArrayList<integer> 형식으로 반환하여 list.add로 쉽게 푸신 분도 계셨다..
이번 문제는 간단하면서도 많은 것을 깨닫게 해준 문제였던 것 같다.
반응형
'알고리즘 > 프로그래머스:LV00' 카테고리의 다른 글
[LV00] 특정 문자 제거하기 (0) | 2023.04.17 |
---|---|
[LV00] 문자 반복 출력하기 (0) | 2023.04.17 |
[LV00] 최빈값 구하기 (0) | 2023.01.18 |
[LV00] 중앙값 구하기 (0) | 2023.01.09 |
[ 프로그래머스 ] LV.0 분수의 덧셈 (0) | 2023.01.09 |