인사말

안녕하세요. 이 글을 읽고 계신다면 정보처리기사 또는 정보처리산업기사 수험생이실 것 같습니다.

여러 좋은 서적에서 이론을 잘 설명하고 있지만, 코딩 문제의 경우 같은 문제를 여러 번 풀다 보면 답이 머리에 기억되어 새로운 문제가 필요하게 되는 순간이 옵니다.

그럴 때 더 많은 문제를 풀어보고 도움이 되게 하고자 여러 C언어, JAVA, Python 문제를 변형 시키고 직접 컴파일하여 답을 확인하면서 문제를 만들었습니다.

정보처리 실기를 공부하시는 모든 수험생 여러분, 목표하는 모든 것이 이루어지는 그날까지 응원하겠습니다. 화이팅!

목표를 향해 열심히 노력하시고, 좋은 결과 있기를 기원합니다!

 

 

정보처리기사 실기 JAVA언어 코딩 기출변형 문제

 

1. 출력 값을 작성하시오.

class Connection {
    private static Connection _inst = null;
    private static int count = 0;
    private static final Object lock = new Object();
   
    private Connection() {}
   
    static public Connection getInstance() {
        synchronized (lock) {
            if(_inst == null) {
                _inst = new Connection();
            }
            return _inst;
        }
    }
   
    static public synchronized void incrementCount() {
        count++;
    }
   
    static public synchronized void decrementCount() {
        count--;
    }
   
    static public synchronized int getCount() {
        return count;
    }
}

public class ConnectionTest {  
    public static void main(String[] args) {
        Connection conn1 = Connection.getInstance();
        Connection.incrementCount();
        Connection conn2 = Connection.getInstance();
        Connection.incrementCount();
        Connection conn3 = Connection.getInstance();
        Connection.incrementCount();
        Connection.decrementCount();
        Connection.incrementCount();
        Connection.incrementCount();
        Connection.incrementCount();
        System.out.println("Count of conn1: " + Connection.getCount());
        System.out.println("Count of conn2: " + Connection.getCount());
        System.out.println("Count of conn3: " + Connection.getCount());
    }
}
정답

Count of conn1: 5
Count of conn2: 5
Count of conn3: 5

 

2. 출력 값을 작성하시오.

public class Main {
    public static void main(String args[]) {
        int i = 2;
        int k = 5;  
        switch(i) {
            case 1: k += 2;
            case 2: k--;
            case 3: k *= 2;
            case 4: k /= 2;
            case 5: k -= 3;
            default: k++;  
        }
        System.out.print(k);  
    }
}
정답

2

 

3. 출력 값을 작성하시오.

public class MainTest {
    static class B {
        int m;
        int p;
    }

    public static void main(String[] args) {
        B[] b = new B[3];
        for (int i = 0; i < 3; i++) {
            b[i] = new B();
            b[i].m = i * 2;
            b[i].p = i * 2 + 1;
        }

        int sum = 0;
        for (int i = 0; i < 3; i++) {
            sum += b[i].m + b[i].p;
        }

        System.out.println("Sum of m and p values: " + sum);
    }
}
정답

Sum of m and p values: 15

 

4. 출력 값을 작성하시오.

public class Main {
    static class A {
        int n;
        int g;
    }
   
    public static void main(String[] args) {
        A[] a = new A[8];
       
        for (int i = 0; i < 8; i++) {
            a[i] = new A();
            a[i].n = i;
            a[i].g = i + 1;
        }
       
        System.out.println(a[6].n + a[7].g);
    }
}
정답

14

 

5. 출력 값을 작성하시오.

class A {
    int a;
    int b;
}

public class Main {
    static void func1(A m) {
        m.a *= 10;
    }

    static void func2(A m) {
        m.a += m.b;
    }

    public static void main(String[] args) {
        A m = new A();
        m.a = 200;
        func1(m);
        m.b = m.a;
        func2(m);

        System.out.printf("%d ", m.a);
        System.out.printf("%d", m.b);
    }
}
정답

4000 2000

 

6. 출력 값을 작성하시오.

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

    static public Connection get() {
        if (_inst == null) {
            _inst = new Connection();
        }
        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();
        System.out.println(conn1.getCount());
       
        Connection conn2 = Connection.get();
        conn2.count();
        System.out.println(conn1.getCount());

        Connection conn3 = Connection.get();
        System.out.println(conn2.getCount());
        conn3.count();
        conn3.count();

        System.out.print(conn1.getCount() + conn2.getCount() + conn3.getCount());
    }
}
정답

1

2

2

12

 

7. 출력 값을 작성하시오.

public class Main {
    public static void main(String[] args) {
        int a = 2, b = 4, c = 6, d = 8;
        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);
            }
        }
    }
}
정답

10

 

8. 출력 값을 작성하시오.

public class Main {
    public static void main(String[] args) {
        int i, j;
        for (j = 0, i = 0; i <= 7; i++) {
            j += i;
            System.out.print(i);
            if (i == 7) {
                System.out.print("=");
                System.out.println(j + i);
                System.out.print(j);
            } else {
                System.out.print("+");
            }
        }
    }
}
정답

0+1+2+3+4+5+6+7=35

28

 

9. 출력 값을 작성하시오.

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

class ovr1 {
    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);
    }
}
정답

5

 

10. 출력 값을 작성하시오.

public class Main{
    public static void main(String[] args){
        int[][]arr = new int[][]{{45,510,35},{89,115}};
        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]);
        System.out.println(arr[1][1]);
    }
}
정답

3
2
45
510
89
115