📝 문제
✔️ 풀이
from copy import deepcopy
def solution(arr):
c = 0
before_arr = deepcopy(arr)
while True:
for i, a in enumerate(arr):
if a >= 50 and a % 2 == 0:
arr[i] //= 2
elif a < 50 and a % 2:
arr[i] = arr[i] * 2 + 1
if before_arr == arr:
return c
before_arr = deepcopy(arr)
c += 1
✏️ 배운점
공희찬님의 풀이를 참고하였다.
조건에 맞게 수열 변환하기 1의 심화 버전인데 deepcopy를 이용하여 배열을 복사하여 arr(x) = arr(x+1)을 찾을 수 있었다.
출처 - 프로그래머스 (https://school.programmers.co.kr/learn/courses/30/lessons/181881)
반응형
'Codingtest' 카테고리의 다른 글
[프로그래머스][파이썬] #14. 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (1) | 2023.09.07 |
---|---|
[프로그래머스][파이썬] #13. 1로 만들기 (0) | 2023.09.07 |
[프로그래머스][파이썬] #11. 왼쪽 오른쪽 (0) | 2023.08.16 |
[프로그래머스][파이썬] #10. 배열 조각하기 (0) | 2023.08.06 |
[프로그래머스][파이썬] #09. 2의 영역 (0) | 2023.08.02 |