[알고리즘문제풀기] 조건에 맞게 수열 변환하기 2

silver's avatar
Apr 29, 2025
[알고리즘문제풀기] 조건에 맞게 수열 변환하기 2

문제

내가 작성한 정답

import java.util.Arrays; class Solution { public int solution(int[] arr) { int answer = 0; while(true){ int[] pre = arr.clone(); // int[] pre = Arrays.copyOf(arr,arr.length); 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==1) arr[i] = arr[i]*2 + 1; } if(Arrays.equals(pre,arr)) break; answer++; } return answer; } }

다른 사람들의 정답

import java.util.Arrays; class Solution { public int solution(int[] arr) { return Arrays.stream(arr).map(i -> cntAction(i)).max().getAsInt(); } private int cntAction(int n) { int cnt = 0; boolean flag = true; while (flag) { if (n % 2 == 0 && 50 <= n) { n /= 2; cnt++; } else if (n % 2 == 1 && n < 50) { n *= 2; n += 1; cnt++; } else { flag = false; } } return cnt; } }
Share article

silver