[Python] 알고리즘 연습 3 (프로그래머스)

Lake·2024년 5월 9일

Python 문제

목록 보기
3/22
post-thumbnail

짝수와 홀수 (연습문제)

  • 정수 num이 짝수일 경우 "Even"을 반환하고 홀수인 경우 "Odd"를 반환하는 함수, solution을 완성해주세요.
    • 제한사항
      • num은 int 범위의 정수입니다.
      • 0은 짝수입니다.

제출한 코드 :

def solution(num):
    if (num % 2) == 0:
        answer = 'Even'
    else:
        answer = 'Odd'
    return answer

평균 구하기 (연습문제)

  • 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요.
    • 제한사항
      • arr은 길이 1 이상, 100 이하인 배열입니다.
      • arr의 원소는 -10,000 이상 10,000 이하인 정수입니다.

제출한 코드 :

def solution(arr):
    answer = sum(arr) / len((arr))
    return answer

자릿수 더하기 (연습문제)

  • 자연수 N이 주어지면, N의 각 자릿수의 합을 구해서 return 하는 solution 함수를 만들어 주세요.
    예를 들어 N = 123이면 1 + 2 + 3 = 6을 return 하면 됩니다.
    • 제한사항
      • N의 범위 : 100,000,000 이하의 자연수

제출한 코드 :

def solution(n):
    return sum(int(digit) for digit in str(n))

이 문제 풀면서 알게 된 것

1. for문을 사용해서 문자열을 반복하게 되면, 각 문자가 하나씩 순차적으로 반복된다.
--> for letter in "hello":와 같은 코드를 사용하면, letter 변수가 'h', 'e', 'l', 'l', 'o'의 순서대로 반복적으로 할당

2. 리스트 컴프리헨션


약수의 합 (연습문제)

  • 정수 n을 입력받아 n의 약수를 모두 더한 값을 리턴하는 함수, solution을 완성해주세요.
    • 제한사항
      • n은 0 이상 3000이하인 정수입니다.

제출한 코드 :

def solution(n):
    divisor_sum = 0
    
    for i in range(1, n + 1):
        if n % i == 0:
            divisor_sum = divisor_sum + i
    
    return divisor_sum

나머지가 1이 되는 수 찾기 (월간 코드 챌린지 시즌3)

  • 자연수 n이 매개변수로 주어집니다. nx로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
    • 제한사항
      - 3 ≤ n ≤ 1,000,000
      제출한 코드 :
def solution(n):
    for x in range(2, n):
        if n % x == 1:
            return x

0개의 댓글