
27번_ 함수 호출 시 매개변수로 리스트를 받는 문제

✅ 정답: [1, 2]
💡 y=[]는 함수 호출 시 매번 새로운 리스트를 생성하지 않고, 기존 리스트를 공유하기 때문에, 예상과 다르게 값이 계속 추가된다. 즉, 리스트를 기본 인자로 사용하면 이전 호출의 값이 누적된다.
28번_ 문자열 리스트 순회
다음 함수의 실행 결과는?
class Arr:
a = ['Seoul', 'Kyeonggi', 'Inchon', 'Daejoen', 'Daegu', 'Busan']
s = '' # 문자열 초기화
for i in Arr.a: # 올바른 for문 문법
s += i[0] # 각 단어의 첫 글자만 추가
print(s)
✅ 정답: SKIDDB (각 도시 이름의 첫 글자를 조합한 결과)
💡
Arr라는 클래스를 만들고, 리스트에 저장된 문자열의 첫 글자들만 추출하여 하나의 문자열로 만드는 프로그램
클래스 변수 사용
- `Arr.a`처럼 클래스 변수를 직접 호출해서 사용 가능.
문자열 슬라이싱
- `i[0]`로 문자열의 첫 글자들만 가져옮
문자열 연결 (+=)
- `s += i[0]`을 통해 문자열을 누적하여 저장함
29번_ sel

✅ 정답: 6
💡
fir, sec: 두 개의 숫자를 받아서 self.fir, self.sec에 저장한다.
self.fir = fir → 클래스의 인스턴스 변수 fir에 입력받은 값을 저장함.
self.sec = sec → 클래스의 인스턴스 변수 sec에 입력받은 값을 저장함.
add 메서드는 self.fir과 self.sec 값을 더한 결과를 반환하는 함수이다.
a.fir = 4, a.sec = 2이므로 4 + 2 = 6이 출력된다.
36번_ 람다, 아스키

✅ 정답
france
Korea
Spain
💡
max() 함수는 기본적으로 알파벳 순서(ASCII 코드)를 기준으로 가장 큰 값을 찾는다.
알파벳 대문자가 소문자보다 ASCII 값이 작기 때문에, 대문자로 시작하는 단어들이 우선된다.
왜냐하면 A는 65이고 a는 97이기 때문이다.
✔️ `max(country, key=lambda x: x[2])`
여기서 key=lambda x: x[2]는 각 단어의 2번째 인덱스 문자(세 번째 글자)를 기준으로 비교하라는 뜻
# 각 단어의 세 번째 문자
'Korea' → 'r'
'Spain' → 'a'
'Germany' → 'r'
'Canada' → 'n'
'france' → 'a'
'Serbia' → 'r'
✔️ `max(country, key=lambda i: i.lower()`
이 경우, 모든 단어를 소문자로 변환한 후 max()를 적용하라는 뜻
['canada', 'france', 'germany', 'korea', 'serbia', 'spain']
38번_ 람다, map, x**2

✅ 정답: [81, 49, 25]
💡
`squared_numbers = list(map(lambda x: x**2, numbers))`
map() 함수는 리스트의 각 요소에 lambda x: x**2 (제곱 연산)을 하는 코드
map(함수, 반복 가능한 객체)
- 첫 번째 인자: 함수 → 리스트의 각 요소에 적용할 함수
- 두 번째 인자: 반복 가능한 객체 → 리스트, 튜플 등
map()은 리스트의 각 요소를 변환하는 역할을 한다.
sort(reverse=True)로 내림차순
[:3]로 가장 큰 3개의 값을 출력한다.
'정보처리기사' 카테고리의 다른 글
| [정보처리기사] 프로세스 스케줄링 헷갈리는거 오답정리 (2) | 2025.04.04 |
|---|---|
| [정보처리기사] 데이터베이스 정리 (3) - 쿼리문, 예제14개 (1) | 2025.04.03 |
| [정보처리기사] Python 풀이 헷갈리는 개념 & 실수 방지 가이드 (1) (3) | 2025.04.03 |
| [정보처리기사] 데이터베이스 정리 (2) (1) | 2025.04.03 |
| [정보처리기사] 데이터베이스 정리 (1) (1) | 2025.04.03 |