프로그래머스 - 조건에 맞게 수열 변환하기2
import java.util.Arrays;
class Solution {
public int solution(int[] arr) {
int[] after = new int[arr.length];
int count = 0;
int loop = 0;
while (true) {
for (int i = 0; i < arr.length; i++) {
if (arr[i] == after[i])
count++;
}
if (count == arr.length) {
break;
}
else {
count = 0;
if(loop !=0) {
arr = Arrays.copyOfRange(after, 0, after.length);
}
for (int i = 0; i < arr.length; i++) {
if (arr[i] >= 50 && arr[i] % 2 == 0) {
after[i] = arr[i] / 2;
} else if (arr[i] < 50 && arr[i] % 2 == 1) {
after[i] = arr[i] * 2 + 1;
}
else after[i] = arr[i];
}
loop++;
}
}
return loop-1;
}
}
- arr[x] == arr[x+1] 조건도 해줘야 하나 싶었는데, 안되면 문제가 안되니 별도로 해주지 않음(이후 반복부터 다 계속 같은 배열인데, 같은게 없으면 최소값이 없게됨)
- 핵심 조건
- 두 배열의 크키 같다 -> 배열의 크기로 초기화
- 같은 인덱스 원소 각각 서로 같음 이부분을 놓쳐서 첨에는 왜안되나 계속 고민함..