1. 다음 출력 결과를 작성하시오.
public static void main(String[] args){
Set a = new HashSet();
a.add(7)
System.out.println(a);
a.add(5)
System.out.println(a);
a.add(5)
System.out.println(a);
a.remove(5)
System.out.println(a);
System.out.println(a.size());
}
📚 HashSet ():
[7]
[5,7]
[5,7]
[7]
1
해시셋은 중복된 원소를 허용하지 않는 성질은 가진 클래스이며, 순서에 구애받지 않습니다.
(약간 파이썬의 세트와 같음)
5가 삽입되었을때 중복이 되므러 추가되지 않는것이 포인트입니다.
2. 다음은 2개의 정수를 입력받아 합을 출력하는 Java 프로그램이다. 괄호에 공통으로 들어갈 가장 적합한 코드를 작성하시오.
import java.util.( );
public class Test {
public static void main(String args[]){
( ) scan = new ( ) (System.in);
int a = scan.nextInt(); # Scanner 클래스의 객체 변수 scan을 키보드로 입력받을 수 있도록 생성합니다.
int b = scan.nextInt();
System.out.printf("%d", a +b);
}
}
📚 Scanner
Scanner
Scanner 클래스의 객체 변수 scan을 키보드로 입력받을 수 있도록 생성합니다.
3. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 작성하시오.
public class Impl{
public static viod main(String args[]){
int a = 12, b = 5, sum = 2;
b *= a /= 4;
sum += ++a * b-- / 4;
System.out.printf("%d", sum);
}
}
각 변수들을 초기화하고,
1. b는 (12/4) * 5 = 15가 됩니다. - 변수들의 값을 대입하면 확인할 수 있습니다.
2. sum은 (13*15) / 4 + 2 = 17이 되게 됩니다.- ++a는 전치 증가 연사자라 바로 12에서 13로 반영이 되지만, b--는 후치 증가 연산자라 라인이 끝난 뒤에 반영되기에 여기서는 반영되지 않습니다.
4. 다음 Java로 구현된 프로그램을 분석하여 그 실행 결과를 작성하시오.
public class Impl{
public static viod main(String args[]){
int a = 5, b = 9, c;
c = b % 5 < 5 ? 1 : 0;
c = c | c << 3;
c = a < 5 || c >= 10 ? c - a : c + a;
System.out.printf("%d", c);
}
}
📚 for i in myVal.a: i[0]
SIKDDP
시프트가 논리 연산자보다 우선이다
그래서
c = c | c << 3 = 1 | 1 <<3
👉 1 <<3 = 1000 = 8
👉 1 | 8 = 1001 = 9
5+9 = 14
5. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
a = "What's this?"
print("%-10.4s" % a)
print("%10.4s" % a)
📚 %-10.4s
What
What
%s는 문자열을 추출하는 서식 문자열이고,
-10.4s에서 -는 왼쪽부터 출력하라는 의미이며,
10은 10자리를 확보하고,
4는 a에 저장된 문자열 "What's this" 중 앞의 4글자만을 출력하라는 의미이므로 결과는 뒤에 6칸 공백이 생깁니다.
두번째 답도 비슷하게
10.4s에서 +는 오른쪽부터 출력하라는 의미이며,
앞의 4글자만 출력하고 마지막 6칸 공백이 생기는 방식으로 설정되었습니다.
💡 %.3f 을 생각해요.
소수 출력에서 많이 봤을만한 표기입니다.
소수점 뒤 반올림하여 3자리까지 출력입니다.
➡️ %(-/+)10.4s문자열이니까, 반올림은 아니죠?!그럼 .4는 앞부터 출력 개수이고, 10은 총 출력 개수라고 유추할 수 있어요-/+ 는 왼쪽/오른쪽 부터 출력을 의미한다는 거~! 암기
6. 다음 Python으로 구현된 프로그램을 분석하여 그 실행 결과를 쓰시오.
a = [[1,1,0,1,0],
[1,0,1,0]]
tot,totsu = 0, 0
for i in a:
for j in i:
tot += j
totsu = totsu + len(i)
print(totsu, tot)
📚 2차원 리스트에서 중첩 for문, 개수
9 5
i는 a의 [[1,1,0,1,0],[1,0,1,0]] 에서 순차적으로 들어갑니다. (즉, 크게 2번 반복)
1.
for 문 (1)
i에 [1,1,0,1,0]
for 문(2)
j에 i의 각 요소 1,1,0,1,0
tot 는 tot(0) + j 요소의 합이 들어감 # 3
totsu 는 totsu(0) + len(i)로, len(i)는 리스트의 개수 5개 # 5
2.
for 문 (2)
i에 [1,0,1,0]
for 문(2)
j에 i의 각 요소 1,0,1,0
tot 는 tot(3) + j 요소의 합이 들어감 # 5
totsu 는 totsu(5) + len(i)로, len(i)는 리스트의 개수 4개 # 9
print(totsu, tot) 를 하면, 마지막 9 5 가 순차대로 출력됩니다.
💡참고로, print에서
print(totsu, tot) 할 때 변수를 " , " 로 연결하여 출력할 경우 한칸 띄어쓰기 됩니다.
💡참고로, print(len(j)는 하지 못합니다.
i는 리스트 이며, j는 정수이기 때문입니다.
len은 리스트 길이 구할 때 사용합니다.
7. 다음 Python 코드는 "30, 200"을 출력한다. 빈 칸 ( 1 ), ( 2 )에 알맞는 코드를 차례로 쓰시오.
( 1 ) Calculator:
( 2 ) add(self,x,y):
return x + y
( 2 ) mul(self,x,y):
return x * y
cal = Calculator()
x = cal.add(10,20)
y = cal.mul(10,20)
print(x, y)
📚 함수 키워드
class, def
Python에서 클래스는 class로, 함수는 def라는 키워드로 선언합니다.
7. 다음 Python 코드는 "30, 200"을 출력한다. 빈 칸 ( 1 ), ( 2 )에 알맞는 코드를 차례로 쓰시오.
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()
📚 2차원 리스트에서 중첩 for문, end = " "
[1,2,3]
7
1 2 3
4 5
6 7 8 9
lol의 [0] 인덱스 값 출력하고 1줄 내립니다. [1,2,3]
lol의 [2][1] 인덱스 값 출력하고 1줄 내립니다. 7
sub는 lol의 [[1,2,3],[4,5],[6,7,8,9]] 에서 순차적으로 들어갑니다. (즉, 크게 3번 반복)
1.
for 문 (1)
sub에 [1,2,3]
for 문(2)
item에 sub의 각 요소 1,2,3
print(item, end = " ") # 1,2,3 출력하고 개행(엔터)
2.
for 문 (1)
sub에 [4,5]
for 문(2)
item에 sub의 각 요소 4,5
print(item, end = " ") # 4,5 출력하고 개행(엔터)
3.
for 문 (1)
sub에 [6,7,8,9]
for 문(2)
item에 sub의 각 요소 6,7,8,9
print(item, end = " ") # 6,7,8,9 출력하고 개행(엔터)
'IT 자격증 > 정보처리기사' 카테고리의 다른 글
[정처기] 2024년 2회 정보처리기사 실기 합격 후기 주의점(한 번에 합격하기!) (0) | 2024.07.29 |
---|---|
[정처기] 정보처리기사 (IP클래스 · 서브넷마스크 · 서브넷)편 유형 모음 / 초간단 풀이 (0) | 2024.07.25 |
[정처기] 정보처리기사 실기 Python 편 풀이 해설 (2) | 2024.07.22 |
[정처기] 정보처기기사 실기 큰 틀 요약 !! (2) | 2024.07.22 |
[정처기] 실기-1과목 소프트웨어 구축 (0) | 2024.06.24 |