<<틀리기 쉬운 문제>>
자바문제
클래스 배열
메인함수
int[]a = new int[]{1,2,3,4} //new를 써서 배열 객체를 만들었다.
int[]b = new int[]{1,2,3,4}
int[]c = new int[]{1,2,3}
if문 a==b //new가 있어서 메모리 주소가 서로 다름.
if문 a==c //new가 있어서 주소가 서로 다름.
if문 b==c //new가 있어서 주소가 서로 다름.
정답:
NNN
클래스 배열
메인 함수
int[]a = new int[]{1,2,3,4} //new를 써서 배열 객체를 만들었다.
int[]b = new int[]{1,2,3,4}
int[]c = new int[]{1,2,3}
if(배열 객체 변수명.equals(a,b)) //equals는 값이 같은 지 물어보는 것임. 같음.
if(배열 객체 변수명 .equals(a,c))
if(배열 객체 변수명 .equals(b,c))
정답:
a and b are equal.
a and c are not equal.
b and c are not equal.
<<틀리기 쉬운 문제>> c언어 문제. 다차원 배열
메인 함수
int 배열[3][3]={1,2,3,4,5,6,7,8,9}
[0] | [1] | [2] | |
[0] | 1 | 2 | 3 |
[1] | 4 | 5 | 6 |
[2] | 7 | 8 | 9 |
int*p[2] //2행배열
[0][1][2] | |
[0] | 4,5,6 |
[1] | 7,8,9 |
p[0]=배열[1] //배열1행 4,5,6을 p 0행에 넣어라.
p[1]=배열[2]
int 결과 = p[1][1] +*(p[1]+2)+**p //8+9+4=21 //**p=*p[0]
%d\n, result
정답:21
c언어.
스왑 함수
a=11
b=19
temp //빈 거
tem=a
a=b
b=a //a랑 b랑 자리바꾸기
메인 함수
a=11
b=19
스왑 함수 호출. //a=19, b=11 //스왑함수 안에서만 살아있는 변수임. 지역변수!!!!!!!! 메인함수에 가면 상관없어져.
스위치문(a) // 여기서 메인함수 변수 a 값을 가져올건지 스왑함수 a를 가져와야 하는 지 헷갈림. 지역변수라서 메인함수에 적힌 변수 써야함!!!!!!!!!!!
케이스 11 b=b+2=19+2=21
디폴트 b=b+3=21+3=24
브레이크
%d, a-b=11-24=-13
정답:
-13
파이썬
def k(str, 3)
result=str.split('T') //스플릿 함수 등장. T를 기준으로 자른다. T는 없어짐.
str="ITISTESTSTRING" // ITISTESTSTRING
print("실제로 잘린 값: ", end="") // end="" 이거는 파이썬에서 개행 방지용 문구임.
실제로 잘린 값: ['I', 'IS', 'ES', 'S', 'RING'] //리스트 형태.
정답:
S
c언어 구조체 문제
구조체 node
int n1
struct node*n2 //구조체 node의 주소를 담는 포인터 변수n2
n1 | *n2 |
메인함수
struct node a={10, NULL(&b)}
struct node b={20, NULL(&c)}
struct node c={30, NULL}
struct node*head //node형태의 포인터변수 head 선언.
head = &a
a.n2 = &b
b.n2 = &c
%d\n, head->n2->n1 //a의 주소. a의 n2. b의 주소. b의 n1
정답:
20
자바문제. 킬러문제
클래스 W
static string c(string str, int i=7, boolean[]seen)
if문(i<0) return""
char c =str.charAt(i) //해당 인덱스에 있는 문자를 반환하여 c로 저장하라. str.charAt(7)은 d.
string result = c(str, i-1, seen) //재귀함수.
c(str, 6, seen) str.charAt(7)은 d.
c(str, 6, seen) str.charAt(6)은 c.
c(str, 5, seen) str.charAt(5)은 b.
c(str, 4, seen) str.charAt(4)은 a.
c(str, 3, seen) str.charAt(3)은 c.
c(str, 2, seen) str.charAt(2)은 a.
c(str, 1, seen) str.charAt(1)은 b.
c(str, 0, seen) str.charAt(0)은 a.
c(str, -1, seen) str.charAt(-1)은 return"" //빈 문자열 반환함.
if문 (!seen[c]) //불린 값이 초기에는 다 false 니까 !false 하면 참이 됨.
seen[c]=ture //false 엿던 걸 true로 바꿔줌. 이러면 다음에 같은 문자가 오면 true 있어서 if문 실행 안함!
result =c+result //result = a+""
seen[c] | result |
seen[a] | a |
b | ba |
a | |
c | cba |
a | |
b | |
c | |
d | dcba |
메인함수
string str = "abacabcd"
a | b | a | c | a | b | c | d | \n |
[0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] |
int length = str.length() //길이 8.
boolean[]seen= new boolean[256] //변수 seen 배열. 불린 값은 초기값이 false로 시작함. [0]부터 [255]까지 false로 채워짐.
string result = c(str, length-1, seen) //함수 호출.
정답:
dcba
자바 문제
인터페이스 N
int sum(int[]n, boolean odd) //배열 변수 n, 불린값 변수 odd
클래스 O implements(상속) N
public int sum(int[] n, boolean odd)
int sum=0
for문 i=0; i<n.length=9; i++
if문 (odd && n[i]%2 != 0) 또는 (!odd && n[i]%2==0) //하나라도 참이 되면 된다.
참이면 sum=sum+n[i]
odd | n[i]%2 != 0 | ! odd | n[i]%2==0 | sum=sum+n[i] |
true | n[0]%2 != 0 참 | 0+1=1 | ||
ture | n[1]%2 != 0 | false | ||
true | n[2]%2 != 0 | 1+3=4 | ||
4+5=9 | ||||
9+7=16 | ||||
16+9=25 | ||||
false | true | n[0]%2==0 | ||
ture | n[1]%2==0 | 0+2=2 | ||
2+4=6 | ||||
6+6=12 | ||||
12+8=20 |
클래스 메인
int[] n ={1,2,3,4,5,6,7,8,9}
N numbersum = new O () //업캐스팅.
int odd토탈= numbersum.sum(n, true) //sum 함수 호출. 홀수값 더하기.
int even토탈= numbersum.sum(n, false) //sum 함수 호출. 짝수값 더하기.
정답:
Odd Sum: 25
Even Sum: 20
자바의 람다함수
이름이 없는 함수라고 함. 람다람다~~이름없는 다람쥥
인터페이스에 쓰기 좋대.
C언어
복사(char d[], const char s[]) //s2, s1 받앙
int i=0
while(s[i] != '\0') //참인동안 실행합니다.
d[i] = s[i]
i++
d[i]='\0' //while 다 끝나고 실행. d[5]=\0
메인 함수
char s1[] = "first" //문자열 변수 s1 선언.
f | i | r | s | t | \0 |
[0] | [1] | [2] | [3] | [4] | [5] |
char s2[50] = "teststring"
int result = 0
복사(s2, s1) //함수 호출.
for문 i=0; s2[i] != '\0'; i++
result= result+i
0+0+1+2+3+4=10
%d, result
정답:
10
s2 전체 출력하면
first ring 이라구함. 띄어쓰기는 \0임. 어디 다른 유투브 동영상에서는 문자열 뒤에 널값이 들어가면 뒤에꺼 자동으로 삭제된다고 그랬는데 누가 맞는건지 모르겠다.
파이썬 문제
def 씨(s, sub) // 씨(a,p1) 받앙.
cnt=0
for문 i in range(len(s)-len(sub)+1) //12-2+1=11 //i는 0부터 10까지 돈다.
if문 s[i:i+len(sub)] == sub
참이면 cnt=cnt+1
return cnt
cnt=cnt+1 | ||
s[0:2] | ab | 0+1=1 |
s[1:3] | bd | |
s[2:4 | ||
s[3:5 | ||
s[4:6 | 1+1=2 | |
s[5:7 | ||
s[6:8 | ||
s[7:9 | ||
s[8:10 | 2+1=3 | |
s[9:11 | ||
s[10:12 |
a="abdcabcaabca" #길이 12
a | b | d | c | a | b | c | a | a | b | c | a | \0 | |
[0] | [1] | [2] | [3] | [4] | [5] | [6] | [7] | [8] | [9] | [10] | [11] | [12] | |
s[0:2] | a | b | |||||||||||
s[1:3] | b | d | |||||||||||
s[2:4 | d | c | |||||||||||
s[3:5 | c | a | |||||||||||
s[4:6 | a | b | |||||||||||
s[5:7 | b | c | |||||||||||
s[6:8 | c | a | |||||||||||
s[7:9 | a | a | |||||||||||
s[8:10 | a | b | |||||||||||
s[9:11 | b | c | |||||||||||
s[10:12 | c | a |
p1= "ab"
p2= "ca"
out=f "ab{씨(a,p1)}ca{씨(a,p2)}" //함수호출. //f스트링 문제!!! 문자열 앞에 f를 넣어줌. 출력할 변수를 중괄호{}에 넣기.
정답:
ab3ca3
'정보처리기사 필답 실기. 코딩 문제.' 카테고리의 다른 글
c언어 코드문제 (0) | 2025.05.18 |
---|---|
정처기 24년 3회 코드 기출문제 (0) | 2025.05.15 |
정처기 24년 1회 코드 기출문제 (0) | 2025.05.13 |
정처기 23년 3회 코드 기출문제 (0) | 2025.05.12 |
정처기 23년 2회 코드 기출문제 (0) | 2025.05.11 |
댓글