반응형
https://school.programmers.co.kr/learn/courses/30/lessons/181881
전수조사로 해결한 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
현재 array cur_arr과 반복 횟수 x를 선언 후 적절히 초기화합니다.
📔 풀이과정
while loop를 수행하며 다음을 진행합니다.1. prev_arr를 선언해 현재 cur_arr값을 deep copy해줍니다.2. calculate_arr사용해서 홀수, 짝수에 대한 조건에 따라 cur_arr값을 갱신해줍니다.3. 만약 prev_arr과 cur_arr이 같다면 x, x+1번 수행한 결과가 같으므로 break합니다.4. 아니라면 x에 1을 더해줍니다.
📔 정답 출력 | 반환
x를 반환합니다.
📕 Code
📔 Python3
import copy
def is_same_arr(cur_arr, prev_arr):
for i in range(0, len(cur_arr)):
if cur_arr[i] != prev_arr[i]:
return False
return True
def calculate_arr(arr):
for i in range(0, len(arr)):
a = arr[i]
if a >= 50 and a % 2 == 0:
a //= 2
elif a < 50 and a % 2 == 1:
a = a * 2 + 1
arr[i] = a
def solution(arr):
cur_arr = arr
x = 0
while True:
prev_arr = cur_arr.copy()
calculate_arr(cur_arr)
if is_same_arr(cur_arr, prev_arr):
break
x += 1
return x
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Brute Force' 카테고리의 다른 글
(Python3) - 프로그래머스(코딩테스트 입문) : 짝수의 합 (0) | 2024.10.25 |
---|---|
(Python3) - 프로그래머스(코딩테스트 입문) : 순서쌍의 개수 (0) | 2024.10.25 |
(Python) - LeetCode (easy) 1925. Count Square Sum Triples (0) | 2024.09.20 |
(C++) - LeetCode (easy) 1893. Check if All the Integers in a Range Are Covered (0) | 2024.09.12 |
(C++) - LeetCode (easy) 1876. Substrings of Size Three with Distinct Characters (1) | 2024.09.05 |