콜라츠 수열 문제와 숨어있는수 문제 비교
문자열 속 숫자 더하기 (숨어있는 숫자의 덧셈(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//2
와 n //= 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
까지 가지 않음!