20년 2회
a={'한국','중국','일본'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update(['한국','홍콩','태국'])
print(a)
✅ 정답
{'한국', '중국', '베트남', '홍콩', '태국'}
✏️문제 풀이
1. 초기 집합 생성: a는 '한국', '중국', '일본'을 포함하는 집합.
2. 요소 추가: a.add('베트남')으로 '베트남'을 추가.
3. 중복 추가 무시: a.add('중국')은 이미 존재하는 '중국'을 추가하려고 하지만, 집합에서는 중복을 허용하지 않음.
4. 요소 제거: a.remove('일본')으로 '일본'을 제거.
5. 여러 요소 추가: a.update(['한국','홍콩','태국'])으로 '한국', '홍콩', '태국'을 추가. '한국'은 이미 존재하므로 무시.
20년 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
1 2 3
4 5
6 7 8 9
✏️문제 풀이
# 리스트 생성
lol = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
# 첫 번째 서브 리스트 출력
print(lol[0]) # [1, 2, 3]
# 세 번째 서브 리스트의 두 번째 요소 출력
print(lol[2][1]) # 7
# 중첩 루프를 통해 모든 요소 출력
for sub in lol:
for item in sub:
print(item, end=' ') # 요소를 한 줄에 출력
print() # 서브 리스트마다 줄 바꿈
21년 1회
class good :
li = ["seoul", "kyeonggi","inchon","daejeon","daegu","pusan"]
g = good()
str01 = ''
for i in g.li:
str01 = str01 + i[0]
print(str01)
✅ 정답
skiddp
✏️문제 풀이
1. 초기값 설정: a에 100을 할당하고, result를 0으로 초기화.
2. 반복문: for i in range(1, 3)는 i가 1과 2일 때 반복.
3. 첫 번째 반복 (i = 1)
- result = a >> 1: 100을 오른쪽으로 1비트 시프트.
- 100의 이진수 표현: 110010
- 1비트 시프트: 011001 (즉, 50)
result = result + 1: 50에 1을 더하여 result = 51
4. 두 번째 반복 (i = 2)
- result = a >> 2: 100을 오른쪽으로 2비트 시프트.
- 2비트 시프트: 001100 (즉, 25)
5. result = result + 1: 25에 1을 더하여 result = 26
6. 결과 출력: 최종적으로 print(result)를 통해 26이 출력.
21년 3회
a,b = 100, 200
print(a==b)
✅ 정답
False
✏️문제 풀이
22년 1회
def exam(num1, num2=2):
print('a=', num1, 'b=', num2)
exam(20)
✅ 정답
a=20 b=2
✏️문제 풀이
def exam(num1, num2=2): # num2의 기본값을 2로 설정
print('a=', num1, 'b=', num2) # num1과 num2를 출력
exam(20) # num1에 20을 전달, num2는 기본값인 2 사용
22년 2회
a="REMEMBER NOVEMBER"
b=a[:3]+a[12:16]
c="R AND %s" % "STR";
print(b+c)
✅ 정답
REMEMBER AND STR
✏️문제 풀이
1. 슬라이싱: b = a[:3] + a[12:16]
22년 3회
TestList = [1,2,3,4,5]
TestList = list(map(lambda num : num + 100, TestList)))
print(TestList)
✅ 정답
[101,102,103,104,105]
✏️문제 풀이
map 함수와 lambda 함수를 사용하여 리스트의 각 요소에 100을 더하는 예제
1. 초기 리스트: TestList에 [1, 2, 3, 4, 5]를 할당합니다.
2. map과 lambda 사용
23년 1회17번 출력 결과(20년 2회 기출문제와 동일)
a={'한국','중국','일본'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update(['한국','홍콩','태국'])
print(a)
✅ 정답
{'한국', '중국', '베트남', '홍콩', '태국'}
✏️문제 풀이
1. 초기 집합 생성: a는 '한국', '중국', '일본'을 포함하는 집합.
2. 요소 추가: a.add('베트남')으로 '베트남'을 추가.
3. 중복 추가 무시: a.add('중국')은 이미 존재하는 '중국'을 추가하려고 하지만, 집합에서는 중복을 허용하지 않음.
4. 요소 제거: a.remove('일본')으로 '일본'을 제거.
5. 여러 요소 추가: a.update(['한국','홍콩','태국'])으로 '한국', '홍콩', '태국'을 추가. '한국'은 이미 존재하므로 무시.
23년 2회
출력 결과는?
a = "engineer information processing"
b = a[:3]
c = a[4:6]
d = a[28:]
e=b+c+d
print(e)
✅ 정답
engneing
✏️문제 풀이
a = "engineer information processing" # 문자열 a 정의
b = a[:3] # b는 a의 인덱스 0부터 2까지의 문자 -> eng
c = a[4:6] # c는 a의 인덱스 4부터 5까지의 문자 -> ne
d = a[28:] # d는 a의 인덱스 28부터 끝까지의 문자 -> ing
e = b + c + d # b, c, d를 합침 eng + ne + ing
print(e) # 결과 출력
23년 3회
한 번에 2개를 입력받아서 분리문자로 분리해서 각각 다른 변수에 저장하려고 한다.
num1, num2 = input(). ( 가 )(분리문자)
✅ 정답
split
✏️문제 풀이
| 함수 | 설명 | 예제 |
|---|---|---|
split() | 문자열을 분리하여 리스트로 반환 | num1, num2 = input().split(',') |
join() | 리스트의 요소를 연결하여 문자열로 만듦 | result = ', '.join(['apple', 'banana']) |
strip() | 문자열의 양쪽 공백을 제거 | cleaned = user_input.strip() |
replace() | 특정 문자열을 다른 문자열로 교체 | new_string = original_string.replace('old', 'new') |
find() | 특정 문자열의 인덱스를 반환 | index = string.find('substring') |
| 함수 | 설명 | 예제 |
|---|---|---|
append() | 리스트의 끝에 요소를 추가 | my_list.append('new_item') |
extend() | 리스트에 다른 리스트의 요소를 추가 | my_list.extend(['item1', 'item2']) |
insert() | 특정 인덱스에 요소를 추가 | my_list.insert(1, 'new_item') |
remove() | 특정 값을 가진 첫 번째 요소를 제거 | my_list.remove('item_to_remove') |
pop() | 특정 인덱스의 요소를 제거하고 반환 | item = my_list.pop(0) |
| 함수 | 설명 | 예제 |
|---|---|---|
max() | 주어진 iterable의 최대값을 반환 | largest = max([1, 2, 3, 4]) |
min() | 주어진 iterable의 최소값을 반환 | smallest = min([1, 2, 3, 4]) |
sum() | 주어진 iterable의 합계를 반환 | total = sum([1, 2, 3, 4]) |
sorted() | 주어진 iterable을 정렬하여 리스트로 반환 | sorted_list = sorted([3, 1, 4, 2]) |
| 함수 | 설명 | 예제 |
|---|---|---|
len() | 객체의 길이를 반환 | length = len(my_list) |
type() | 객체의 타입을 반환 | obj_type = type(my_variable) |
range() | 숫자의 범위를 생성 | for i in range(5): print(i) |
24년 1회
출력 결과는?
a = ["Seoul", "Kyeonggi", "Incheon", "Daejun", "Daegu", "Pusan"]
str = "S"
for i in a:
str = str + i[1]
print(str)
Colored
✅ 정답
Seynaau
✏️문제 풀이
a = ["Seoul", "Kyeonggi", "Incheon", "Daejun", "Daegu", "Pusan"] # 도시 이름 리스트
str = "S" # 초기 문자열
for i in a: # 리스트 a의 각 도시를 순회
str = str + i[1] # 각 도시의 인덱스 1 문자를 str에 추가
print(str) # 최종 결과 출력
# 최종 출력: "Seynaau"
24년 2회😿
출력 결과는?
def fnCalculation(x,y):
result = 0;
for i in range(len(x)):
temp = x[i:i+len(y)]
if temp == y:
result += 1;
return result
a = "abdcabcabca"
p1 = "ab";
p2 = "ca";
out = f"ab{fnCalculation(a,p1)}ca{fnCalculation(a,p2)}"
print(out)
✅ 정답
ab3ca3
✏️문제 풀이
def fnCalculation(x, y):
result = 0 # 결과를 저장할 변수 초기화
for i in range(len(x)): # x의 길이만큼 반복
temp = x[i:i+len(y)] # x의 i번째 인덱스부터 y의 길이만큼 슬라이스
if temp == y: # 슬라이스한 부분이 y와 같으면
result += 1 # 결과를 1 증가
return result # 최종 결과 반환
a = "abdcabcabca" # 검색할 문자열
p1 = "ab" # 찾을 첫 번째 패턴
p2 = "ca" # 찾을 두 번째 패턴
out = f"ab{fnCalculation(a, p1)}ca{fnCalculation(a, p2)}" # 결과 문자열 생성
print(out) # 결과 출력