본문 바로가기
알고리즘/[프로그래머스] JAVA

[코딩 기초 트레이닝] 조건에 맞게 수열 변환하기 2

by 코딩맛집 2024. 1. 2.

문제 :

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