2022년 정보처리기사 실기를 보고 느낀 점은 '코딩 문제를 일단 다 맞자!' 였어요. 용어를 묻는 문제가 너무 지엽적으로 나오기도 했고, 그 많은 방대한 범위를 정확하게 써 내려갈 정도로 공부를 하는 게 너무 어렵게 느껴졌거든요.
특히나 2020년도 ncs 기반으로 개편이 된 이후, 코딩 문제가 8문제 까지도 나오고 있습니다. 60점이 합격점수에 12문제만 맞으면 되니까, 코딩 문제 8문제 다 맞추고 다른 거 4개 더 맞겠다 라는 생각으로 접근해야 하는 것 같아요.
코딩 문제는 C언어, 자바, 파이썬, SQL 이렇게 4개의 부분에서 나오는데요. 저는 정리하면서 제가 오히려 공부가 되는 편 이여서, 하나 하나 기출문제를 분석해 보려고 합니다.
C언어와 Java 관련된 기출문제 풀이는 제가 블로그에 따로 포스팅해 두었습니다!
정보처리기사 실기 파이썬 기출 문제 (2020년~ 2022년도/ 9회분)
대부분의 문제가 결과값이나 빈칸에 들어갈 알맞은 말을 쓰는 것이어서 문제 부분은 생략하겠습니다.
1. 2022년 2회차 13번
a = "REMEMBER NOVEMBER"
b = a[:3] + a[12:15];
c = "R AND %s" % "STR";
print(b+c);
답) REMEMBER AND STR
b는 파이썬에서 '리스트 슬라이싱'에 관한 내용입니다.
a[:3] 은 REM a[12:15]는 EMBE 입니다.
c는 %s 자리에 STR을 대입하라는 뜻입니다.
그래서 R AND STR
b+c = REMEMBER AND STR
2. 2022년 2회차 6번
def exam(num1, num2=2):
print('a=', num1, 'b=', num2)
exam(20)
답) a=20/ b=2
파이썬의 함수에 관한 문제입니다. 함수 exam()을 보시면 매개변수가 2개인데 인자를 1개만 줬습니다.
그런데 num 1은 기본값이 없지만, num 2 =2 기본값이 있습니다. 이게 무슨 뜻이냐면, 따로 들어온 인자가 없을 땐 num2 =2로 한다는 뜻입니다.
살짝 응용을 해서, 반대로 exam( num1 = 2, num 2) 이렇게 준다면 가능할까요? 답은 불가능합니다. 파이썬에서 함수를 만들고 그 첫 번째 인자는 무조건 받는 걸로 만들어야 하기 때문에 기본값을 지정할 수 없습니다.
그래서 a=20 b=2
3. 2021년 3회차 14번
a,b = 100, 200
print(a==b)
답) False
파이썬의 불린에 대하여 묻는 문제입니다.
c언어, java, 파이썬의 불린형에 대해 정리를 해보자면 이렇습니다.
C언어 | Java | 파이썬 |
1 | true | True |
0 | false | False |
가장 중요한 점은 파이썬은 첫 글자가 대문자라는 것입니다. 그래서 만약에 답을 false로 적으셨다면 틀린 답입니다.
4. 2021년 2회차 7번
a = 100
result = 0
for i in range(1,3);
result = a >> i
result = result + 1
pirnt(result)
답) 26
파이썬과 비트 연산자에 관한 문제입니다.
n = 100
print(n<<1) #100을 2배 한 값인 20 이 출력됩니다.
print(n>>1) #100을 반으로 나눈 값인 5 가 출력됩니다.
print(n<<2) #100을 4배 한 값인 40 이 출력됩니다.
print(n>>2) #100을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력됩니다.
비트상에서 움직이기 때문에 2진법으로 계산하여 값이 2ⁿ배 커지거나 작아집니다.
파이썬의 for문에서 시작 숫자와 끝 숫자를 지정하려면 range(시작 숫자, 끝 숫자) 형태를 사용하는데, 이때 끝 숫자는 포함되지 않습니다.
i=1일때 a=100에서 2배 작아져서 50/ result = 51
i=2일때 a=100에서 4배 작아져서 25/ result =26
result 값만 변했지, 변형된 result 값이 a에 영향을 주는 코드는 어디에도 없으므로 a는 계속 100입니다.
5. 2021년 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
파이썬의 for문입니다. 기본 문장은 for 변수 in 리스트입니다. 그래서 리스트의 요소들을 한 개씩 변수에 집어넣고, 차례로 수행문을 수행하는 것이죠.
마찬가지로 g.li 클래스 good의 리스트 li의 요소들을 i에 집어넣고, 수행문인 str01 = str01 + i[0]을 수행하라는 뜻입니다.
그래서 각 단어들의 0번째 요소, 즉 첫 번째 글자를 출력하여 답은 skiddp입니다.
6. 2020년 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
1 2 3
4 5
6 7 8 9
배열에서 순서를 매길 땐 0부터 시작을 합니다. 0.1.2...
lol[0]은 배열 lol의 0번째 요소인 [1,2,3]
lol[2][1]은 3번째 요소의 1번째 요소 7
lol의 0번째 요소인 [1,2,3]이 sub에 들어가고, sub의 0번째 요소가 item에 들어가면, 1 출력. 1번째 요소가 item에 들어가면, 2 출력. 2번째 요소가 item에 들어가면 3 출력.
end = " " 는 띄어쓰기를 의미합니다. 그래서 최종적으로 1 2 3 출력
그리고 개행 문자인 print() 를 만나 엔터
위와 같은 메커니즘으로 조건문이 실행이 되면
1 2 3
4 5
6 7 8 9 가 출력됩니다.
7. 2020년 2회차 2번
a={'일본','중국','한국'}
a.add('베트남')
a.add('중국')
a.remove('일본')
a.update(['홍콩','한국','태국'])
print(a)
답) {'중국', '한국', '베트남', '홍콩', '태국'}
집합 a에 베트남, 중국 삽입 / 일본 삭제/ 홍콩, 한국 태국을 삽입합니다.
파이썬에서 집합의 특징은 순서가 상관없고, 중복이 없습니다. 그래서 답은 중복을 제거하고 남은 {'중국', '한국', '베트남', '홍콩', '태국'}입니다.
여기서 add와 update 함수의 차이는, add는 1개씩만 삽입할 수 있지만 update는 여러 개를 한 번에 삽입할 수 있는 함수입니다.
'정보처리기사' 카테고리의 다른 글
정보처리기사 실기 프로그래밍 문제 SQL 기출 풀이 모음 (10) | 2022.10.15 |
---|---|
정보처리기사 실기 프로그래밍 문제 Java 기출 풀이 모음 (3) | 2022.10.14 |
정보처리기사 실기 프로그래밍 문제 C언어 기출 모음 (19) | 2022.10.11 |
티스토리 코드 블럭 폰트 크기 변경 & 접은글 모양 변경 (4) | 2022.10.10 |