📝오늘 공부한 것
- 커리어톤 참여하기
- 프로그래머스 문제풀기
- 면접 준비
- 면접 보고오기
📌 문제
📌 정답
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int n) {
List<Integer> listAnswer = new ArrayList<>();
while (n!=1){
listAnswer.add(n);
if(n%2==0){
n = n/2;
} else {
n = 3 * n +1;
}
}
listAnswer.add(1);
int[] answer = listAnswer.stream().mapToInt(Integer::intValue).toArray();
return answer;
}
}
⭐ for문과 while문 차이
for문은 구하고자 하는 값의 조건이 무엇인지 정확할 경우 사용한다.
while문은 구하고자 하는 값의 조건이 무엇인지 정확히 모를 경우, 유동적인 경우에 사용한다.
-> 이 문제에서는 배열의 길이가 정확하게 정해지지 않아서 for문 대신 while문을 사용하였다.
⭐ list를 int배열로 변환
for문을 사용하는 방법과 stream을 사용하는 방법 중 stream을 사용하는 방법을 선택하였다.
int[ ] answer = list.stream( ).mapToInt(Integer::intValue).toArray( );
'TIL(Today I Learned)' 카테고리의 다른 글
TIL-231117(JPA N+1 문제) (0) | 2023.11.17 |
---|---|
TIL-231116(DDD, 도메인 주도 설계) (0) | 2023.11.16 |
TIL-231114([프로그래머스/자바] 가까운 1 찾기) (0) | 2023.11.14 |
TIL-231113([프로그래머스/자바] 특별한 이차원 배열 2) (0) | 2023.11.14 |
TIL-231111([프로그래머스/자바] 홀수 vs 짝수) (0) | 2023.11.11 |