
[20년 2회][23년 1회]
2. 다음은 파이썬 코드이다. 출력 결과를 쓰시오.
a = {'일본', '중국', '한국'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update(['홍콩', '한국', '태국'])
print(a)
| 답: {'중국','한국','베트남','홍콩','태국'} ※ 순서는 상관 없음 remove : 특정 데이터 1개를 삭제 update : 데이터 여러 개를 한꺼번에 추가 discard(값) : remove와 똑같이 지우는 기능인데, 값이 없어도 에러를 내지 않고 넘어감. clear() : 세트 안의 모든 내용을 지워서 빈 주머니로 만듦 pop() : 세트에서 아무거나 하나를 꺼내오고 지움. (순서가 없어서 뭐가 나올지 모르는 '복불복' 뽑기) |
[20년 4회]
9. 다음은 파이썬 소스 코드이다. 출력 결과를 쓰시오.
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 배열의 형태는 아래와 같이 만들어진다. ![]() 위처럼 표를 그리고 답을 찾으면 쉽다. lol[0] = [1,2,3] lol[2][1] = 7 for sub in lol: → lol 에 있는 값을 sub 에 넣어라. for item in sub: → sub 에 있는 값을 item 에 넣어라 print(item, end=' ') → item 에 있는 값을 출력해라. end=' ' : 값을 출력하고, 줄 바꾸지 말고 공백(스페이스)을 붙여라 그래서 123 45 6789 로 출력된다. ※lol → sub → item 의 순으로 뽑지 않고, lol을 바로 출력했다면. [[1, 2, 3], [4, 5], [6, 7, 8, 9]] 형태로 출력된다. → lol 이란 큰 박스를 꺼낸다. ※lol → sub → item 의 순으로 뽑지 않고, sub 까지만 하고 출력했다면. [1, 2, 3] [4, 5] [6, 7, 8, 9] 으로 출력된다. → 큰 박스에서 sub 라는 작은 상자를 꺼낸다. → 큰 박스에서 sub 라는 작은 상자 안에 있는 item 이란 알맹이를 하나씩 꺼낸다. |
[21년 1회]
5. 다음은 파이썬 코드이다. 출력 결과를 쓰시오.
class good:
li = ["seoul", "kyeonggi", "inchon", "daejeon", "daegu", "pusan"]
g = good()
str01 = ""
for i in g.li:
str01 = str01 + i[0]
print(str01)
| 답: skiddp class good: li = ["seoul", "kyeonggi", "inchon", "daejeon", "daegu", "pusan"] g = good() str01 = " " → 각 변수들 정의 g = good() : li=[ ] 로 정의된 것을 g라는 값에 넣어라. for i in g.li: → g.il 에 들어간 값을 한개씩 i 에 넣어라 (g 객체의 멤버 변수인 li 리스트를 순회하며 각 요소를 i 에 대입해라) str01 = str01 + i[0] i[0] : i에 들어간 값들의 i[0] 에 해당하는것만 출력된다. → seoul : s → kyeonggi : k 이런 식으로 str01 = " " : 공백이 없는 빈 공간(=빈 공간) 이 포함되어 저장된다. str01 = str01 + i[0] : " "skiddp 가 만들어져서 str01 에 저장된다. print(str01) → 출력하면 skiddp 가 된다. |
[24년 1회]
12. 다음 파이썬 코드에 대한 알맞는 출력 값을 작성하시오
a = ["Seoul", "Kyeonggi", "Incheon", "Daejun", "Daegu", "Pusan"]
str = "S"
for i in a:
str = str + i[1]
print(str)
| 답: Seynaau a = ["Seoul", "Kyeonggi", "Incheon", "Daejun", "Daegu", "Pusan"] → 리스트 정의 str = "S" → 변수 정의 for i in a: → a의 리스트를 i에 하나씩 넣기 str = str + i[1] str : S i[1] : i[1]의 위치에 있는 값 ![]() print(str) → S+e+y+n+a+a+u |
[21년 2회]
7. 파이썬 비트 연산자 코드 결과
a = 100
result = 0
for i in range(1, 3):
result = a >> i
result = result + 1
print(result)
| 답: 26 a = 100 result = 0 → 변수 정의 for i in range(1, 3): → i 가 1~2 동안 반복(range(1, 3)) 해라. ※ reage 범위에서 끝숫자는 그 앞에까지 반복한다고 생각. 끝숫자가 되면 반복 안 하니까 result = a >> i result = result + 1 ![]() ※a 값이 변하려면 a >>= i 같은 식으로 'a = '형태가 있었어야한다. |
[21년 3회]
14. 다음 파이썬 코드이다. 알맞는 출력값을 쓰시오.
a,b = 100, 200
print(a==b)
| 답: False ※파이썬의 실행결과 : 앞글자가 대문자로 나온다. |
[22년 1회]
6. 다음은 파이썬 코드에서 출력되는 a와 b의 값을 작성하시오.
def exam(num1, num2=2):
print('a=', num1, 'b=', num2)
exam(20)
답: a= 20 b= 2![]() exam(num20, 50) 이었다면 num2=2 가 아니라 새로 들어온 50이 사용된다. |
[22년 2회]
13. 다음은 파이썬 코드이다. 알맞는 출력값을 작성하시오.
a = "REMEMBER NOVEMBER"
b = a[:3] + a[12:16];
c = "R AND %s" % "STR";
print(b+c);
| 답: REMEMBER AND STR a = "REMEMBER NOVEMBER" ![]() → a에 문자열이 저장된다. b = a[:3] + a[12:16]; ![]() → REM + EMBE 값이 b에 저장된다. c = "R AND %s" % "STR"; → STR 이란 값이 %s 로 들어간다. → R AND STR 값이 c에 저장된다. print(b+c); → REMEMBER AND STR ※파이썬의 슬라이싱 [초기값 : 끝값 : 증가값] 초기값 : 해당 숫자를 포함함, 생략되면 0부터 시작 끝값 : 해당 숫자를 포함하지 않음. 그 앞에 숫자까지라는 뜻, 생략되면 NULL값 만날때까지 증가값 : 몇 칸씩 건너뛸지, 생략되면 1칸씩 건너뛴다. |
[22년 3회]
9. 다음 파이썬 코드에 대한 출력값을 작성하시오.
TestList = [1,2,3,4,5]
TestList = list(map(lambda num : num + 100, TestList))
print(TestList)
| 답: [101,102,103,104,105] TestList = [1,2,3,4,5] → 변수 정의 TestList = list(map(lambda num : num + 100, TestList))) lambda num : num + 100 : 숫자(num)이 들어오면, 100을 더해서 내보내라. (규칙 정의) map(lambda num : num + 100, TestList) : 리스트(TestList)의 요소를 하나씩 꺼내서, lambda 규칙에 통과시켜라. list(map(lambda num : num + 100, TestList)) : map이 작업한 결과물을 list 형태로 다시 묶어라. → TestList = [101,102,103,104,105] 가 된다. print(TestList) → 출력 |
[23년 2회]
19. 다음 파이썬 코드에서 알맞는 출력값을 작성하시오.
a = "engineer information processing"
b = a[:3]
c = a[4:6]
d = a[28:]
e=b+c+d
print(e)
답: engneing![]() → [시작값 : 끝값 : 증감] |
[23년 3회]
14. 다음은 파이썬에 대한 문제이다. 밑줄친 부분에 알맞는 답을 작성하시오.
print("파이썬 입출력에 대한 문제입니다.")
num1, num2 = input()._____()
num1 = int(num1)
num2 = int(num2)
print(num1,num2)
num3 = num1 + num2
print(num1 + " + " + num2 + " = " + num3)
[특이사항]
입력값은 2와 3이다.
[출력화면]
파이썬 입력출에 대한 문제입니다.
2 3
2 + 3 = 5
| 답: split 파이썬의 input() 함수는 사용자가 입력한 내용을 하나의 통째 문자열로 가져옴. "2 3"처럼 공백으로 구분된 값을 각각 num1과 num2에 쪼개서 넣어주려면 split() 함수가 반드시 필요 동작 원리: input().split() 을 하면 공백(기본값)을 기준으로 문자열을 잘라 리스트 형태로 반환 정답: split (또는 split()) 입력: input().split() → "2" 와 "3" 으로 쪼개짐. 형 변환: int()를 통해 문자 "2" 가 숫자 2로 바뀜. 연산: num3 = 2 + 3 → 5 저장. 출력: 2 + 3 = 5 출력. |
[24년 2회]
6. 다음은 Python에 대한 문제이다. 아래 코드를 읽고 알맞는 출력 값을 작성하시오.
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 문자열 a안에서 특정 패턴(p1, p2)이 몇 번 등장하는지 찾아내는 파이썬 함수 ※ 슬라이싱 temp = x[i:i+len(y)] : x 의 i 번 부터 i+len(y) 길이만큼 글자를 잘라서 temp에 담아라 → [시작 : 끝] : '끝' 번호 직전까지만 가져온다. 예. [0 : 2] : 0번, 1번 인덱스만 가져온다 예. [1 : 4] :1번, 3번 인덱스만 가져온다. ※ 대입 방법 i in range(len(x)) → i in range(len(abdcabcabca)) → i in range(11) temp = x[i:i+len(y)] → abdcabcabca[0 : len(ab)] → abdcabcabca[0 : 2] → ab ![]() |
[24년 3회]
2. 다음은 파이썬에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력값을 작성하시오.
def func(lst):
for i in range(len(lst) // 2):
lst[i], lst[-i - 1] = lst[-i - 1], lst[i]
lst = [1, 2, 3, 4, 5, 6]
func(lst)
print(sum(lst[::2]) - sum(lst[1::2]))
| 답: 3 ※lst[초기값:끝값:증감값] ![]() |
[24년 3회]
10. 다음은 파이썬에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력값을 작성하시오.
def func(value):
if type(value) == type(100):
return 100
elif type(value) == type(""):
return len(value)
else:
return 20
a = '100.0'
b = 100.0
c = (100, 200)
print(func(a) + func(b) + func(c))
| 답: 45 데이터 타입(형태) 구분하는 문제 if type(value) == type(100): return 100 type(100) : 정수(int)인가? elif type(value) == type(""): return len(value) type("") : 문자열(str)인가? else: return 20 a = '100.0' → 문자열(str) → len('100.0') = 5 ※(1 0 0 . 0) = 5글자 ※작은따옴표(' ') 또는 큰따옴표(" ")로 감싸져있으면 문자열(str) b = 100.0 → 실수(float) ※소숫점이므로 실수이다. 정수였으면, 100 이렇게 표현됐어야한다. → return 20 c = (100, 200) → 튜플(tuple) → return 20 print(func(a) + func(b) + func(c)) 5 + 20 +20 = 45 |
[25년 2회]
17. 다음은 Pyhon 언어의 문제이다. 아래 코드를 보고 알맞는 출력값을 작성하시오.
lst = [1, 2, 3]
dst = {i: i * 2 for i in lst}
s = set(dst.values())
lst[0] = 99
dst[2] = 7
s.add(99)
print(len(s & set(dst.values())))
| 답: 2 lst = [1, 2, 3] → 리스트가 만들어진다. dst = {i: i * 2 for i in lst} 딕셔너리 컴프리헨션 : 반복문을 한 줄로 줄여 쓴 것 for i in lst : lst에 있는 값을 i 에 넣어라 (※키:값 형태로 딕셔너리에 들어간다.) i: i * 2 : i는 i*2를 해라 dst = 나온 값을 dst에 넣어라 → 1이 들어오면 1:1*2 → {1:2} → 2이 들어오면 2:2*2 → {1:2 , 2:4} → 3이 들어오면 3:2*2 → {1:2 , 2:4, 3:6} s = set(dst.values()) dst.values() : 딕셔너리에서 값(values)만 가져와라 → {1:2 , 2:4, 3:6} → [2, 4, 6] 이 된다 set(dst.values()) : 중복을 허용하지 않는 세트(주머니)로 만든다. → s = {2, 4, 6} 이 된다. lst[0] = 99 → lst의 첫 번째 값을 바꾼다. → lst = [1, 2, 3] → lst = [99, 2 ,3] (※lst와 dst는 다른, 독립적인 딕셔너리이므로 lst를 바꿔도 dst는 안 바뀐다.) dst[2] = 7 → dst에서 키가 2인 요소의 값을 7로 바꾼다. → dst = {1:2 , 2:4, 3:6} → dst = {1:2 , 2:7, 3:6} s.add(99) → s에서 99값을 추가(add)해라. → s = {2, 4, 6} → s = {2, 4, 6, 99} print(len(s & set(dst.values()))) set(dst.values()) : dst의 값(values)은 현재 2,7,6 → 이걸 세트로 만들면 {2,6,7} s : s의 값은 현재 [2,4,6,99] s & set(dst.values()) : 교집합 → {2,4,6,99} & {2,6,7} → 공통된 요소는 2, 6 len(s & set(dst.values())) : 길이(len) 측정 → 2,6이므로 길이는 2 그러므로 2 ※ [ ] : 리스트, 순서가 있고 값을 마음대로 바꿀 수 있음 ※ { } : 딕셔너리, '키:값' 쌍으로 저장. 키를 알면 값을 바로 찾음 ※ { } : 세트, 순서가 없고, 중복을 절대 허용 안 함 ※ ( ) : 튜플, 순서가 있지만, 한 번 정하면 절대 못 바꿈 |
[25년 3회]
9. 다음은 파이썬에 대한 문제이다. 아래 코드를 확인하여 출력값에 알맞는 값을 작성하시오.
data = [[3,5,2,4,1], [4,5,1], [4,4,1,5,4], [4,5]]
result = {}
for index, lis in enumerate(data):
result[index] = (sum(lis), len(lis))
print(result)
{0: (①,②), 1: (③,④), 2: (⑤,⑥), 3: (⑦,⑧)}
| 답: ① = 15 ② = 5 ③ = 10 ④ = 3 ⑤ = 18 ⑥ = 5 ⑦ = 9 ⑧ = 2 data = [[3,5,2,4,1], [4,5,1], [4,4,1,5,4], [4,5]] → 2차원 리스트 형태 ' [ ' 으로 알 수 있다. ![]() ※data[0] = [3,5,2,4,1] : (전체 리스트에서 0번 행 전체를 가져와라) ※data[0][0] = 3 : (0번행 안 에서 다시 0번 열의 값을 가져와라) result = {} → result는 딕셔너리로 정의한다. → '{}' (딕셔너리) 키(key)와 값(value)을 한 쌍으로 묶어서 저장하는 상자 for index, lis in enumerate(data): → index 에 숫자 0,1,2,3이 차례대로 들어간다. (인덱스 '번호' 그 자체가 들어감) → lis에 daa 안의 각 서브 리스트들이 차례대로 들어간다. (data[0]인 [3,5,2,4,1] → 쉽게 생각하면, 그냥 위에 정의한 2차원 리스트를 꺼낼 수 있게 됐다. 로 이해 ※ enumerate 인덱스(번호)와 값을 동시에 꺼내주는 함수 result[index] = (sum(lis), len(lis)) ※ result[index] : 저장할 위치(이름표) ※ (sum(lis), len(lis)) : 저장할 내용물(계산 결과) ※ = : 오른쪽의 결과를 왼쪽에 대입 sum(lis) : 합계 구하기 → 현재 반복문에서 꺼내온 리스트(lis) 안에 있는 모든 숫자를 더함 → 예. lis 가 [3,5,2,4,1] 이라면 3+5+2+4+1 = 15 라는 숫자를 만듦 len(lis) : 개수 구하기 → 리스트(lis) 안에 데이터 몇 개 들어있는지 셈 → 예. lis 가 [3,5,2,4,1] 이라면 숫자가 5개 있으므로 결과는 5 가 됨 (sum(lis), len(lis) : 튜플로 묶기 → sum(lis)의 결과값과 len(lis)의 결과값을 소괄호로 묶어 하나의 세트로 만듦 → 예. (15, 5) 라는 데이터 덩어리가 됨 result[index] = (sum(lis), len(lis)) → (sum(lis), len(lis) 의 값을 result[index] 에 저장 → 예. result[0] = (15, 5) 가 됨 for index, lis in enumerate(data): result[index] = (sum(lis), len(lis)) 반복시행 ![]() print(result) → {0: (15,5), 1: (10,3), 2: (18,5), 3: (9,2)} |
[26년 1회]
8. 아래 파이썬 코드가 있다. 입력값으로 HumanDev를 주었을 때 출력되는 결과를 쓰시오.
i = input()
x = []
for word in i.split():
x.append(word)
y = ''.join(x)
z = ''.join(c for c in y[::-1] if c not in 'ong')
print(z)
답: veDamuH![]() |
[26년 1회]
13. 다음은 파이썬에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력값을 작성하시오.
lst = list(range(10))
for c in lst[::-2]:
print(c, end='A')
print()
답: 9A7A5A3A1A![]() |
[26년 1회]
14. 아래 파이썬 코드를 실행했을 때 출력되는 값을 쓰시오.
def f(a):
m = [[x] for x in a]
b = m[:]
for i in range(len(b) - 1):
b[i+1] += b[i]
return sum(len(x) for x in m)
print(f([1, 2, 3, 4]))
답: 10![]() |
'자격증 요약 > 정보처리기사' 카테고리의 다른 글
| [정보처리기사 실기] 자바(JAVA) 기출 유형_2 (배열) (0) | 2026.04.07 |
|---|---|
| [정보처리기사 실기] 자바(JAVA) 기출 유형_1 (반복문, 제어문, 연산) (0) | 2026.04.07 |
| [정보처리기사 실기] SQL문 기출 (0) | 2026.04.06 |
| [20년 1회] 정보처리기사 실기 문제 풀이 (0) | 2026.02.27 |
| [20년 2회] 정보처리기사 실기 문제 풀이 (0) | 2026.02.27 |













