ABOUT ME

IT와 컴퓨터 관련 팁, 파이썬 등과 아파트 정보, 일상적인 경험 등의 생활 정보를 정리해서 올리는 개인 블로그

  • 최대값과 최소값 위치, 배수 합계, 소수 구하기 등
    코딩 연습/파이썬 기초(예제) 2022. 5. 11. 11:53
    반응형

    [파이썬기초예제] 네이버 지식인에 올라와 있는 문제(최댓값과 최솟값을 구하고 그 위치까지 찾기, 3의 배수의 합계 구하기, 소수 판별과 주어진 숫자까지의 모든 소수 출력)에 대해 풀이해주고 포스팅함 

     

     

    파이썬 기초 예제 풀이

     

    Q1. N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하고 그 위치를 찾는 프로그램을 작성하시오.

     

    [파이썬 소스 코드]

    def max_v(lst):
        temp = lst[0]
        idx = 0  # 최대값 위치 찾기
        for i in range(len(lst)):
            if temp < lst[i]:
                temp = lst[i]
                idx = i
        return temp, idx + 1
    
    
    def min_v(lst):
        temp = lst[0]
        idx = 0  # 최소값 위치 찾기
        for i in range(len(lst)):
            if temp > lst[i]:
                temp = lst[i]
                idx = i
        return temp, idx + 1
    
    
    nums = [20, 10, 30, 24, 52]
    print(f'최소값은 {min_v(nums)[0]}, 위치는 {min_v(nums)[1]}')
    print(f'최대값은 {max_v(nums)[0]}, 위치는 {max_v(nums)[1]}')
    
    numbers = [3, 29, 38, 12, 57, 74, 40, 85, 61]
    print(f'최대값은 {max_v(numbers)[0]}, 위치는 {max_v(numbers)[1]}')
    
    
    
    [실행 결과]
    최소값은 10, 위치는 2
    최대값은 52, 위치는 5
    최대값은 85, 위치는 8

     

    # [다른 방법] 내장함수를 사용하여 최댓값, 최솟값을 구하고 위치도 찾기

    nums = [20, 10, 30, 24, 52]
    _max = max(nums)
    _min = min(nums)
    print(_max, nums.index(_max) + 1)
    print(_min, nums.index(_min) + 1)
    
    numbers = [3, 29, 38, 12, 57, 74, 40, 85, 61]
    print(max(numbers), numbers.index(max(numbers)) + 1)
    
    
    
    [실행 결과]
    52 5
    10 2
    85 8

     

     

     

    Q2. 3의 배수의 합계를 구하는 함수를 정의하고 반환 값을 활용해 3의 배수의 합을 구하시오.

     

    [파이썬 소스 코드]

    N = int(input('숫자를 입력하시오 : '))
    
    tot = 0
    for i in range(1, N + 1):
        if i % 3 == 0:
            print(i)
            tot += i
    
    print(f'1 ~ {N}까지의 정수 중 3의 배수의 합은 {tot}입니다')
    
    
    
    [실행 결과]
    숫자를 입력하시오 : 15
    3
    6
    9
    12
    15
    1 ~ 15까지의 정수 중 3의 배수의 합은 45입니다

     

     

     

    Q3. 소수를 구하는 함수를 정의하고 숫자를 입력 받아 소수 인지 아 닌지 판별하시오. (1부터 자기 자신까지 나누어 떨어지는 수가 총 2개 일 때 소수)

     

    [파이썬 소스 코드]

    def prime_num(n):
        if n == 2:
            return '소수'
    
        for i in range(2, n):
            if n % i == 0:
                return '소수 아님'
        
        return '소수'
    
    result = prime_num(15)
    print(result)
    
    
    [실행 결과]
    소수 아님

     

     

     

    good4me.co.kr

     

     

    Q4. 소수를 구하는 프로그램을 만들고 숫자를 입력하면 그 숫자까지의 소수를 모두 출력하시오.

     

    [파이썬 소스 코드]

    N = int(input('숫자를 입력하시오 : '))
    cnt = 0
    for i in range(2, N + 1):
        prime = True
        for j in range(2, i + 1):
            if i == 2:
                break
            if i > j and i % j == 0:
                prime = False
                break
            else:
                continue
        if prime:
            cnt += 1
            print(i)
            
            
            
     [실행 결과]
     숫자를 입력하시오 : 15
    2
    3
    5
    7
    11
    13

     

     

     

     

    반응형
Designed by goodthings4me.