[프로그래머스] Lv.0 조건에 맞게 수열 변환하기 2.java

hgghfgf·2023년 6월 6일
0

프로그래머스

목록 보기
126/227

조건에 맞게 수열 변환하기 2.java

class Solution {
    public int solution(int[] arr) {
        int answer = 0;
        int count = 0;
        int[] newArr = new int[arr.length];
        long startTime = System.currentTimeMillis(); // 시작 시간 저장
        
        while(count != arr.length){
            count = 0;
            newArr = arr.clone();
            
            for(int i=0; i<arr.length; i++){
                if(arr[i]%2==0&&arr[i]>=50){
                    arr[i] /= 2;
                }else if(arr[i]%2!=0&&arr[i]<50){
                    arr[i] = arr[i] * 2 + 1;
                }
                if(arr[i] == newArr[i]){
                    count++;
                }
            }
            answer++;
        }
        
        long endTime = System.currentTimeMillis(); // 종료 시간 저장
        long executionTime = endTime - startTime; // 실행 시간 계산

        System.out.println("Execution Time: " + executionTime + "ms"); // 실행 시간 출력
        
        return answer-1;
    }
}

원소가 짝수이고 50 이상인 경우, 2로 나눕니다.
원소가 홀수이고 50 미만인 경우, 2를 곱하고 1을 더합니다.
arr[i]와 newArr[i]가 일치하는 경우, count를 증가시킵니다.

동작 시간을 정확히 측정하기 위해서 System.currentTimeMillis()메서드를 사용하여 코드 실행시간을 측정했습니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

0개의 댓글