코딩테스트

[25.12.08 코테(Python)]-편지&약수의 개수와 덧셈&피보나치 수

지니248 2025. 12. 8. 11:34

Lv0. 편지 (Python)

링크: 코딩테스트 연습 - 편지 | 프로그래머스 스쿨

 

내가 작성한 코드

def solution(message):
    return len(message) * 2

 

새로 배운 코드

def solution(message):
    return len(message)<<1
    
# 왼쪽으로 1비트 이동하는것은 숫자를 2배로 만드는 것과 동일

Lv1. 약수의 개수와 덧셈 (Python)

링크: 코딩테스트 연습 - 약수의 개수와 덧셈 | 프로그래머스 스쿨

 

내가 작성한 코드

def solution(left, right):
    answer = 0
    
    for n in range(left, right+1):
        count = 0
        
        for i in range(1, n+1):
            if n % i == 0:
                count += 1
            
        if count % 2 == 0:
            answer += n
        else:
            answer -= n

    return answer

 

새로 배운 코드

def solution(left, right):
    answer = 0
    
    for i in range(left, right+1):
        if int(i ** 0.5) == i ** 0.5:
            answer -= i
        else:
            answer += i
    return answer

# int(i ** 0.5) == i ** 0.5
# 제곱근이 정수인지 확인하여 제곱수인지 판별
# 제곱근이 소수점 없이 떨어지는 경우에만 True
# 예) i=16, 16**0.5 = 4.0 -> 제곱수
#     i=15, 15**0.5 = 3.87.. -> 제곱수 아님

Lv2. 피보나치 수

링크: 코딩테스트 연습 - 피보나치 수 | 프로그래머스 스쿨

 

내가 작성한 코드

def solution(n):
    a = 0 # F(0)
    b = 1 # F(1)
    
    for i in range(2, n+1):
        new_val = (a + b) % 1234567
        a = b
        b = new_val
    return b