Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
Tags
- 자바
- Date Class
- AoutoBoxing
- 추상화
- do~while문
- 캐스팅연산자
- 부모 생성자
- 예외처리
- super 생성자
- 프로그래머스
- 생성자
- 백앤드
- 알고리즘
- 클래스의구조
- 비전공자
- exception
- 가위바위보프로그램
- userDefineException
- 예외던지기
- 독학
- 취준생
- 코딩
- 국비지원
- 개발자
- Calendar Class
- 사용자 정의 예외처리
- 상속
- for문
- 개발
- Java
Archives
- Today
- Total
유난스런 개발 기록
[JAVA] 프로그래머스 - 짝수는 싫어요 본문
문제를 처음 보았을 때 생각이 났던 방법은 ArrayList를 사용하는 것이었지만, 주어진 리턴 타입을 유지하고자 했다.
int k 배열 answer에서 k에 해당하는 인덱스 값을 의미하며 for문을 실행할 때 1씩 증가한다.
i가 홀수일 경우 인덱스 번호 k에 할당이 되며, 조건을 충족할 때까지 반복문을 실행한다.
사실 개인적으로 ArrayList를 사용하는 것이 더 편했을 거 같다.
동적으로 배열의 크기가 조정되며 배열의 size만큼 반복문을 돌리면 되기 때문에 생각할 것이 더 줄어드는 느낌이랄까
정답 코드
class Solution {
public int[] solution(int n) {
int[] answer = new int[(n+1)/2]; //홀수 개수만큼의 배열의 크기 설정.
int k = 0;
for(int i=1; i<=n; i++) { // 배열의 크기만큼 반복문을 실행, 조건문에 충족되면 배열에 추가해준다.
if(i%2 == 1) {
answer[k] = i; // i를 2로 나누었을 때 나머지가 1인 경우, 즉 홀수 일 경우 배열에 추가해준다. 이후 k는 1씩 증가해주며 배열을 순회한다.
k++;
}
}
return answer;
}
}
ArrayList를 사용한 코드
import java.util.ArrayList;
import java.util.List;
class Solution {
public List<Integer> solution(int n) {
List<Integer> answer = new ArrayList<>();
for (int i = 1; i <= n; i++) {
if (i % 2 == 1) {
answer.add(i);
}
}
return answer;
}
}
프로그래머스에서 문제는 나름 꾸준히 풀고 있지만, 블로그에 공부했던 것을 정리해서 올리는 일은 쉽지 않은 듯
'알고리즘' 카테고리의 다른 글
[JAVA] 프로그래머스 - 최빈값 구하기 (0) | 2023.10.03 |
---|---|
[JAVA] 프로그래머스 - 자연수 뒤집어 배열로 만들기 (0) | 2023.07.28 |