Python

(문제 풀이)파이썬, python: 자료구조

하방주인장 2023. 5. 8. 18:00

목차

     

    1. 배열

    문제 1: 2차원 배열에서 모든 원소의 합 구하기

    my_array = [[1, 2, 3], [4, 5, 6],[7, 8, 9]]
    
    def solve(array):
        total_sum = 0
        for i in range(len(array)):
            for j in range(len(array[i])):
                total_sum += array[i][j]
        return total_sum
        
    solve(my_array)
    >>> 45

     

    문제 2: 각 행의 합 구하기

    given_array1 = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
    given_array2 = [[1, 2],[3, 4],[5, 6],[7, 8],[9, 10]]
    
    def solve1(given_array):
        result_list = []
        for i in range(len(given_array)):
            sum_value = sum(given_array[i])
            result_list.append(sum(given_array[i]))
        return result_list
    
    solve1(given_array1)
    >>> [6, 15, 24]
    
    def solve2(given_array):
        sum_list = []
        for i in range(len(given_array)):
            row_sum = 0
            for j in range(len(given_array[i])):
                row_sum += given_array[i][j]
            sum_list.append(sum(given_array[i]))
        return sum_list
    
    solve2(given_array2)
    >>> [3, 7, 11, 15, 19]

     

    2. 큐

    문제 1: N개의 원소를 가진 배열이 주어졌을 때, 배열의 원소를 왼쪽으로 K번씩 회전시키는 프로그램을 작성

    - 예를 들어, 배열 [1, 2, 3, 4, 5]를 왼쪽으로 2번 회전시키면 [3, 4, 5, 1, 2]가 된다.

    nums1 = [1,2,3,4,5]
    
    def solve(nums, k):
        queue = deque(nums)
        for _ in range(k):
            queue.append(queue.popleft())
        return list(queue)
        
    solve(nums1, 3)
    >>> [4, 5, 1, 2, 3]