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

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

문제

내가 작성한 정답

class Solution { public int solution(int[] arr) { int answer = 0; while (true){ boolean b = false; for(int i =0; i<arr.length; i++){ int a = arr[i]; if(a>=50 && a%2==0) { arr[i] /= 2; b = true; } else if (a<50 && a%2==1) { arr[i] = a * 2 + 1; b = true; } } if(!b) 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