Practice 5 : 자료 구조

복잡한 자료구조의 (2차원 리스트) 반복문

복잡한 리스트의 합

2차원 리스트를 반복하는 방법을 알아봅시다.

  • 주어진 아래의 리스트를 반복하여 숫자의 합을 반환하시오.


예시 입력

numbers = [
    [1, 4],
    [10, 5],
    [20, 30]    
]

예시 출력

sum_list([[1, 4], [10, 5], [20, 30]]) # 70

for 문을 활용하여 풀이하기

for element in list:
# 아래에 코드를 작성하세요.
def sum_list(numbers):
    total = 0
    for num_list in numbers:
        for number in num_list:
            total += number
    return total
print(sum_list([[1, 4], [10, 5], [20, 30]]))
70

Index로 접근하여 풀이하기

for element in range(len(list)):
# 아래에 코드를 작성하세요.
def sum_list_index(numbers):
    total = 0
    for idx in range(len(numbers)):
        for sub_idx in range(len(numbers[idx])):
            total += numbers[idx][sub_idx]
    return total
print(sum_list_index([[1, 4], [10, 5], [20, 30]]))
70

while 문을 활용하여 풀이하기

while ____:
## 아래에 코드를 작성하세요.
def sum_list_while(numbers):
    total = 0
    while numbers:
        sub_numbers = numbers.pop()
        while sub_numbers:
            total += sub_numbers.pop()
    return total
print(sum_list_while([[1, 4], [10, 5], [20, 30]]))
70

시험 점수

2차원 배열

  • A반 학생들의 점수는 아래와 같고, students 리스트에 저장되어 있다.

    • A학생(국어 100점, 수학 80점, 영어 100점)

    • B학생(국어 90점, 수학 90점, 영어 60점)

    • C학생(국어 80점, 수학 80점, 영어 80점)

students = [
 [100, 80, 100],
 [90, 90, 60],
 [80, 80, 80]
]

학생별 출력

  • 아래의 리스트를 반복하여 학생별 총합을 순서대로 출력하시오.

  • sum 함수 사용 금지


예시 입력

students = [
 [100, 80, 100],
 [90, 90, 60],
 [80, 80, 80]
]

예시 출력

280
240
240
students = [
 [100, 80, 100],
 [90, 90, 60],
 [80, 80, 80]
]
# 아래에 풀이를 작성하세요. 함수 정의는 필요없습니다.

for lst in students:
    student_total = 0
    for grade in lst:
        student_total += grade
    print(student_total)
280
240
240

과목별 출력

  • 아래의 리스트를 반복하여 과목별 총합을 순서대로 출력하시오.

  • sum 함수 사용 금지


예시 입력

students = [
 [100, 80, 100],
 [90, 90, 60],
 [80, 80, 80]
]

예시 출력

270
250
240
students = [
 [100, 80, 100],
 [90, 90, 60],
 [80, 80, 80]
]
# 아래에 풀이를 작성하세요. 함수 정의는 필요없습니다.
subject1 = 0
subject2 = 0
subject3 = 0

for lst in students:
    subject1 += lst[0]
    subject2 += lst[1]
    subject3 += lst[2]

print(subject1)
print(subject2)
print(subject3)
270
250
240