프로그래머스_Python_오답노트_콜라츠 수열과 반복문 정리, 연산자, 리스트.append(), 및 반복 조건문 비교 문제 풀이.

HEE·2025년 4월 4일
0
post-thumbnail

콜라츠 수열 문제와 숨어있는수 문제 비교
문자열 속 숫자 더하기 (숨어있는 숫자의 덧셈(2))
1. 변수 = '', 변수 = [] 사용 비교에 집중.
2. if 조건문이 반복되는 형상 비교.

1. 프로그래머스 python 코딩테스트 입문

Level 0. 콜라츠 수열 만들기 - 리스트 만들기

정답 확인

리스트 만들기, append() 사용

def solution(n):
    nums = [n]
    while n != 1:
        if n % 2 == 0:
            n = n//2
            nums.append(n)
        else:
            n = n*3+1
            nums.append(n)
    return nums
  • nums += n는 리스트가 아니기때문에 불가능.
    nums.append(n)nums += [n] 변경 가능.
  • n = n//2n //= 2 는 동일함.

연산자 정리

n += i 연산자와 리스트.append() 사용법 비교

  • 리스트.apppend()는 무조건 자료형 리스트에만 사용 가능함.
    즉, 앞이 리스트이기만 하면, 뒤는 그냥 다 넣을 수 있다.
    무조건 앞에 들어가는게 리스트여야한다.
num = 10
num.append(5)  # ❌ 오류 발생!

num이 정수(int) 자료형이기 때문

num = [10]  # 리스트로 선언
num.append(5)  # ✅ 사용 가능
print(num)  # 출력: [10, 5]

num이 리스트 자료형이 되니 사용 가능.


1. 프로그래머스 python 코딩테스트 입문

Level 1. 콜라츠 추측 - 반복 합산하기

정답 확인

def solution(num):
    count = 0
    while num != 1:
        if count > 500:
            return -1
        if num%2 == 0:
            num = num//2
        else:
            num = num*3+1
        count += 1
    return count
  • 반복횟수 제한이 있다면, 맨 앞에 넣어주는게 효율적!
    count가 +된거 보고 바로 제일 먼저 시행되는게 500이상인가, 체크 후 다음으로 넘어가기 때문임. 제일 마지막에 있다면 계산 다하고, 체크하게 되니 더 비효율적.
  • while문에서 첫번째 if문 500 조건을 만족하면 바로, return -1이 되고, count += 1까지 가지 않음!
profile
ALL IS WELL

0개의 댓글