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])를 사용하여 원하는 데이터를 접근합니다.
[ 참고 ]
📌 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
반응형
'코딩일기 > 자격증' 카테고리의 다른 글
[정보처리기사] WHERE절에서 AND와 OR | SQL 문제 | 2021년 1회 정보처리기사 실기 기출 문제 풀이 (0) | 2024.12.17 |
---|---|
[정보처리기사] [ Java ] 상속과 오버라이딩, 재귀 함수 문제 해설 | 정보처리기사 실기 기출 문제 풀이 (0) | 2024.12.17 |
[정보처리기사] [ Java ] 반복문을 활용한 2차원 배열 생성 | 정보처리기사 실기 기출 문제 풀이 (0) | 2024.12.16 |
[정보처리기사] [ C ] 포인터와 배열 | 2020년 3회 정보처리기사 실기 기출문제 (0) | 2024.12.10 |
[정보처리기사] [ Java ] 10진수를 2진수로 변환하는 알고리즘 | 2020년 3회 정보처리기사 실기 기출문제 (0) | 2024.12.10 |