[JAVA] 21년 기출 문제 풀이 (1회 ~ 4회)

2024. 10. 11. 17:14·정보처리기사[실기]

[21년 1회]

public class Main {
	public static void main(String[] args) {
    	int arr[][] = new int[][]{{45,50,75},{89}};
        System.out.println(arr[0].length);
        System.out.println(arr[1].length);
        System.out.println(arr[0][0]);
        System.out.println(arr[0][1]);
        System.out.println(arr[1][0]);
    }
}
더보기

정답

3

1

45

50

89

 

public class Main{
	public static void main(String[] args){
    	int i,j;
        for(j=0, i=0; j<=5; i++){
        	j += i;
            System.out.print(i);
            if(i==5){
            	System.out.print("=");
                System.out.print(j);
            } else {
            	System.out.print("+");
            }
        }
    }
}
더보기

정답

0+1+2+3+4+5=15


[21년 2회]

// (가)에 알맞은 예약어를 쓰시오

public class Main{
	public static void maing(String[] args){
    	System.out.print(Main.check(1));
    }
    
    (가) String check (int num){
    	return (num >= 0) ? "positive" : "negative";
    }
}
더보기

정답 : static

 

Main 클래스에서 직접 호출하고 있기 때문에 static 키워드 필요

* static이 붙은 메서드는 인스턴스를 생성하지 않고도 직접 호출 가능 

 

public class ovr1{
    public static void main(String[] args){
        ovr1 a1 = new ovr1();
        ovr2 a2 = new ovr2();
        System.out.println(a1.sun(3,2) + a2.sun(3,2));
    }
    
    int sun(int x, int y){
    	return x + y;
    }
}

class ovr2 extends ovr1 {
	int sun(int x, int y){
    	return x - y + super.sun(x, y);
    }
}
더보기

11


[21년 3회]

class Connection {
    private static Connection _inst = null;
    private int count = 0;

    public static Connection get() {
        if(_inst == null) {
            _inst = new Connection();
            return _inst;
        }
        return _inst;
    }
    public void count() { count++; }
    public int getCount() { return count;}
}

public class Main {
	public static void main(String[] args){
    	Connection conn1 = Connection.get();
        conn1.count();
        Connection conn2 = Connection.get();
        conn2.count();
        Connection conn3 = Connection.get();
        conn3.count();
        
        System.out.print(conn1.getCount());
    }
}
더보기

정답 : 3

 

* 싱글톤 패턴 (Singleton Pattern)

→ 객체 지향 프로그래미에서 특정 클래스가 단 하나만의 인스턴스를 생성하여 사용하기 위한 패턴

: 불필요한 자원 사용을 방지하고,  생성된 하나의 객체를 전역에서 공유하고 사용할 수 있게 하기 위해 싱글톤 패턴 사용

 

[풀이]

클래스 Connection

  1. private static Connection _inst = null;:
    • Connection 클래스의 정적 필드 _inst는 이 클래스의 유일한 인스턴스를 저장
    • 초기에는 null로 설정되어 있으며, 인스턴스가 생성되면 그 인스턴스를 이 변수에 저장
  2. public static Connection get():
    • 이 정적 메서드는 클래스의 유일한 인스턴스를 반환
    • 만약 인스턴스가 아직 생성되지 않았다면, 새로운 Connection 객체를 생성, 그 객체를 _inst에 저장한 후 반환
    • 이미 인스턴스가 존재한다면, 새로 생성하지 않고 기존 인스턴스를 그대로 반환
  3. public void count():
    • count라는 정수형 필드를 1씩 증가시키는 메서드
  4. public int getCount():
    • 현재 count 값(증가된 값)을 반환

클래스 Main:

  1. Connection conn1 = Connection.get();:
    • conn1이라는 Connection 객체 참조 변수를 선언하고, Connection.get()을 호출하여 Connection 인스턴스 가져옴
    • 이때 인스턴스가 처음 생성
  2. conn1.count();:
    • conn1의 count 메서드를 호출하여 count 값을 1 증가
  3. Connection conn2 = Connection.get();:
    • conn2도 Connection.get()을 호출하여 Connection 인스턴스를 가져오는데 이때는 이미 인스턴스가 생성되어 있으므로 새로 생성하지 않고 기존의 인스턴스를 반환 
    • 즉, conn2는 conn1과 동일한 객체를 참조
  4. conn2.count();:
    • conn2로 호출했지만, 실제로는 동일한 인스턴스이므로 count 값이 1 증가
  5. Connection conn3 = Connection.get();:
    • 마찬가지로 conn1과 conn2와 같은 객체를 참조
  6. conn3.count();:
    • 동일한 인스턴스에서 count 값을 1 증가
  7. System.out.print(conn1.getCount());:
    • conn1.getCount()로 현재 count 값을 출력
    • conn1, conn2, conn3 모두 동일한 인스턴스를 참조하므로 count 값은 3

 

public class Main{
    public static void main(String[] args){
        int a = 3, b = 4, c = 3, d = 5;
        if((a == 2 | a == c) & !(c > d) & (1 == b ^ c !=d )){
            a = b + c;
            if(7 == b ^ c != a){
                System.out.println(a);
            } else {
                System.out.println(b);
            }
        } else {
            a = c + d;
            if(7 == c ^ d != a) {
                System.out.println(a);
            } else {
                System.out.println(d);
            }
        }
    }
}
더보기

정답 : 7

[풀이]

if ((a == 2 | a == c) & !(c > d) & (1 == b ^ c != d)) 

1. (a = 2 | a == c)

✔️ " | " : 비트 OR 연산자 = 두 값 중 하나라도 참이면 전체가 참

a == 2 → false, a == c → true 

➡️ true

 

2. !(c > d)

c > d → false , !(false) → true

➡️ true

 

3. (1 == b ^ c != d)

✔️ " ^ " : 논리 XOR 연산자 = 두 값이 다를 때 true

1 == b → false , c != d → true 

➡️ true

 

if( ture & true & true ) ➡️ true 이므로 첫번째 블록 실행

 

 

저작자표시 변경금지 (새창열림)

'정보처리기사[실기]' 카테고리의 다른 글

[JAVA] 23년 기출 문제 풀이 (1회 ~ 4회)  (3) 2024.10.13
[JAVA] 22년 기출 문제 풀이 (1회 ~ 3회)  (0) 2024.10.13
[JAVA] 20년 기출 문제 풀이 (1회 ~ 4회)  (1) 2024.10.07
[C언어] 24년 기출 문제 풀이 (1회, 2회)  (1) 2024.10.01
[C언어] 23년 기출 문제 풀이 (1회 ~ 4회)  (1) 2024.10.01
'정보처리기사[실기]' 카테고리의 다른 글
  • [JAVA] 23년 기출 문제 풀이 (1회 ~ 4회)
  • [JAVA] 22년 기출 문제 풀이 (1회 ~ 3회)
  • [JAVA] 20년 기출 문제 풀이 (1회 ~ 4회)
  • [C언어] 24년 기출 문제 풀이 (1회, 2회)
microsaurs
microsaurs
개발 스터디로그입니다. 공부한 내용을 정리해서 올립니다 ㅇ-ㅇ
  • microsaurs
    microsaurs.devlog
    microsaurs
  • 전체
    오늘
    어제
    • 분류 전체보기 (138)
      • Side Project (0)
      • Algorithm Study (39)
      • JAVA (8)
      • Swift (11)
      • Python (21)
      • CS (5)
      • React (3)
      • 리얼클래스 studylog (27)
      • 정보처리기사[실기] (23)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    정보처리기사실기
    The Office
    정보처리기사프로그래밍언어
    리얼학습일기
    알고리즘
    javaStudy
    타일러영어
    파이썬기초
    더오피스
    파이썬
    ios프로그래밍을위한스위프트기초
    정처기실기
    자바알고리즘
    study
    Python
    영어회화
    javaalgorithm
    프로그래머스
    정보처리기사
    리얼클래스
    Java
    프로그래밍언어
    ios개발
    Algorithm
    영어독학
    파이썬문법
    SWIFT
    나도코딩
    스위프트기초
    ios프로그래밍
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
microsaurs
[JAVA] 21년 기출 문제 풀이 (1회 ~ 4회)
상단으로

티스토리툴바