자격증 요약/정보처리기사

[정보처리기사 실기] 파이썬(Python) 기출

문성 2026. 4. 6. 23:00


[20년 2회][23년 1회]

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

a = {'일본', '중국', '한국'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update(['홍콩', '한국', '태국'])
print(a)
답: {'중국','한국','베트남','홍콩','태국'}
※ 순서는 상관 없음
                               

add : 데이터 1개를 추가
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