문제 :
https://school.programmers.co.kr/learn/courses/30/lessons/181881
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
해결 :
class Solution {
public int solution(int[] arr) {
int[] before = new int[arr.length];
int cnt = 0;
int answer = 0;
while(cnt != arr.length){
cnt = 0;
before = arr.clone();
for(int i = 0; i<arr.length; i++){
if(arr[i]>=50 && arr[i]%2 == 0){
arr[i] = arr[i]/2;
}else if(arr[i]<50 && arr[i]%2 != 0){
arr[i] = arr[i]*2+1;
}
if(before[i] == arr[i]){
cnt++;
}
}
answer++;
}
return answer-1;
}
}
배열 복사에 관한 개념을 알고 싶다면?
https://my-archiver.tistory.com/137
[JAVA] 깊은 복사와 얕은 복사
1차원 배열 복사 얕은 복사란? - 객체의 주소 값을 복사하는 것이다. - 여러 객체가 같은 주소를 참조하기 때문에 하나의 값을 변경하면 다른 대상의 값도 변경된다. - 한 개의 객체 주소를 참조하
my-archiver.tistory.com
'알고리즘 > [프로그래머스] JAVA' 카테고리의 다른 글
[코딩 기초 트레이닝] 길이에 따른 연산 (0) | 2024.01.02 |
---|---|
[코딩 기초 트레이닝] 배열에서 문자열 대소문자 변환하기 (0) | 2024.01.02 |
[코딩 기초 트레이닝] 1로 만들기 (1) | 2024.01.02 |
[코딩 기초 트레이닝] 소문자로 바꾸기 (0) | 2024.01.01 |
[코딩 기초 트레이닝] 대문자로 바꾸기 (0) | 2024.01.01 |