728x90
반응형
SMALL
Programmers 레벨 0_코딩 기초 트레이닝 문제 풀이
https://school.programmers.co.kr/learn/challenges/training?order=recent
코딩 기초 트레이닝 | 프로그래머스 스쿨
프로그래밍 언어를 처음 접하거나 프로그래밍 언어에 익숙해지고 싶다면? 코딩 역량을 탄탄하게 길러주는 코딩 기초 트레이닝으로 차근차근 코딩에 대한 기초 감각을 길러 보세요.
school.programmers.co.kr
풀이 날짜 : 2023-09-19
소요 시간 : 40min
문제 설명
정수 배열 arr가 주어집니다. arr의 각 원소에 대해 값이 50보다 크거나 같은 짝수라면 2로 나누고, 50보다 작은 홀수라면 2를 곱하고 다시 1을 더합니다.
이러한 작업을 x번 반복한 결과인 배열을 arr(x)라고 표현했을 때, arr(x) = arr(x + 1)인 x가 항상 존재합니다. 이러한 x 중 가장 작은 값을 return 하는 solution 함수를 완성해 주세요.
단, 두 배열에 대한 "="는 두 배열의 크기가 서로 같으며, 같은 인덱스의 원소가 각각 서로 같음을 의미합니다.
나의 풀이
def solution(arr):
x = 0
while(True) :
new_arr = [int(i/2) if i >= 50 and i % 2 == 0 else (int(i*2+1) if i < 50 and i % 2 != 0 else i) for i in arr]
if arr == new_arr :
return x
x += 1
arr = new_arr
while 문에 지정할 조건이 마땅치 않을 때 while(True) 형태로 쓴다.
new_arr을 추가하여 이전 arr과 같을 때까지 반복하도록 작성했다. x값을 리턴하면 while 문이 종료된다.
728x90
반응형
LIST
'Coding Study > Programmers (Python)' 카테고리의 다른 글
[프로그래머스/파이썬] Lv.0 길이에 따른 연산 (5') (0) | 2023.09.19 |
---|---|
[프로그래머스/파이썬] Lv.0 1로 만들기 (14') (0) | 2023.09.19 |
[프로그래머스/파이썬] Lv.0 조건에 맞게 수열 변환하기 1 (5') (0) | 2023.09.19 |
[프로그래머스/파이썬] Lv.0 수열과 구간 쿼리 1 (19') (0) | 2023.09.17 |
[프로그래머스/파이썬] Lv.0 n보다 커질 때까지 더하기 (17') (0) | 2023.09.17 |