코딩일기/자격증

[정보처리기사] [ Python ] 2차원 리스트 출력 문제 | 정보처리기사 실기 기출 문제 풀이

jhy_2023 2024. 12. 17. 12:31
728x90
반응형

2020년 4회 정보처리기사 실기 기출문제

문제

다음은 파이썬 소스 코드이다. 출력 결과를 쓰시오.

lol = [[1, 2, 3], [4, 5], [6, 7, 8, 9]] 

print(lol[0])      
print(lol[2][1])   

for sub in lol:    
    for item in sub:  
        print(item, end='')  
    print()

정답

[1, 2, 3]
7
123
45
6789

해설

📌 리스트와 2차원 리스트

  • 리스트: 파이썬의 리스트는 여러 데이터를 한 곳에 저장할 수 있는 자료구조로, 다른 데이터 타입의 요소들도 함께 저장할 수 있습니다.
    • 예: numbers = [1, 2, 3]
  • 2차원 리스트: 리스트 안에 또 다른 리스트를 요소로 포함할 수 있습니다. 이를 2차원 리스트라고 합니다.
    • 예: lol = [[1, 2], [3, 4]]
    • 이 구조에서는 두 개의 인덱스(list[row][column])를 사용하여 원하는 데이터를 접근합니다.

[ 참고 ]

 

[정보처리기사] Python 리스트(List) 관련 주요 메서드

리스트(List)는 여러 개의 값을 하나의 변수에 저장할 수 있는 데이터 구조로, Python에서 매우 자주 사용됩니다. 이 글에서는 리스트의 정의와 특징, 그리고 주요 메서드에 대해 자세히 설명하겠습

august-jhy.tistory.com

 

📌 for ... in 문

for ... in 문 파이썬의 반복문으로, 리스트, 튜플, 문자열, 딕셔너리, 범위(range)  순회 가능한(iterable) 객체의 각 요소를 순차적으로 접근하며 반복 작업을 수행할 때 사용됩니다.

# 기본 구조

for 변수 in 순회 가능한 객체:
    실행할 코드

 

  • 변수: 반복할 때마다 순회 가능한 객체의 각 요소가 저장되는 변수.
  • 순회 가능한 객체: 리스트, 튜플, 문자열 등 반복 가능한 데이터 구조... 다양한 자료형 지원
  • 실행할 코드: 각 반복 단계에서 실행할 코드.
  • 자동으로 종료: 순회 가능한 객체의 끝에 도달하면 반복이 자동으로 종료
# 예시1. 리스트 순회
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

# 출력
apple
banana
cherry
# 예시2. 문자열 순회

text = "hello"
for char in text:
    print(char)

# 출력
h
e
l
l
o

📌 중첩 for ... in 문

중첩 for ... in 문반복문 안에 또 다른 반복문이 들어가는 형태입니다. 주로 2차원 리스트(배열)와 같은 다차원 구조의 데이터를 순회할 때 사용됩니다.

# 기본 구조

for 변수1 in 순회 가능한 객체1:  
    for 변수2 in 순회 가능한 객체2:  
        실행할 코드

 

  • 변수1: 첫 번째 반복문에서 순회 가능한 객체의 요소가 저장되는 변수입니다.
  • 변수2: 두 번째 반복문에서 첫 번째 반복문이 가져온 요소를 다시 순회하며 저장되는 변수입니다.
  • 순회 가능한 객체1/2: 리스트, 튜플, 문자열 등 반복 가능한 데이터 구조입니다.
  • 실행할 코드: 두 반복문이 수행될 때 실행할 작업입니다.

 

# 예시2. 2차원 리스트 순회

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]

for row in matrix:  # 첫 번째 반복문: 각 행(row)을 가져옴
    for element in row:  # 두 번째 반복문: 각 행의 요소(element)를 가져옴
        print(element, end=" ")  # 각 요소를 출력
    print()  # 행이 끝날 때 줄바꿈

# 출력
1 2 3  
4 5 6  
7 8 9

  # print() 함수의 기본 동작은 출력 후 줄을 바꾸는 것입니다. 
  # end에 빈 문자열('')을 지정하면 줄바꿈이 제거됩니다.

반응형

📌 문제 해설

lol = [[1, 2, 3], [4, 5], [6, 7, 8, 9]] 

print(lol[0])  # 1차원 리스트 출력
print(lol[2][1])  # 2차원 리스트에서 특정 요소 접근

for sub in lol:   # 2차원 리스트의 각 하위 리스트를 순회
    for item in sub:  # 각 하위 리스트의 요소를 순회
        print(item, end='')  # 요소를 출력 (줄바꿈 없이)
    print()  # 각 하위 리스트가 끝날 때 줄바꿈

1️⃣ print(lol[0])

  • lol[0]은 리스트 lol의 첫 번째 하위 리스트인 [1, 2, 3]을 가리킵니다.
  • 출력 결과 :
    [1, 2, 3]

2️⃣ print(lol[2][1])

  • lol[2]는 세 번째 하위 리스트 [6, 7, 8, 9]을 가리키고, lol[2][1]은 이 리스트의 두 번째 요소인 7을 가리킵니다.
  • 출력 결과 :
    7
728x90

3️⃣ 이중 for 루프

 

  • for sub in lol:
    • 리스트 lol의 각 하위 리스트를 sub에 할당하여 순회합니다.
  • for item in sub:
    • 각 하위 리스트의 요소를 item에 할당하여 순회합니다.
  • print(item, end='')
    • 요소를 출력하며 줄바꿈(\n) 없이 표시합니다.
  • print()
    • 한 하위 리스트의 출력이 끝나면 줄바꿈을 추가합니다.
  • 출력 결과 : 
    123
    45
    6789

 


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형