모두CBT

24-2아래 Java 프로그램이 출력하는 문자열을 적으시오.public… | 2024년 정보처리기사실기 2회차 기출문제 상세 페이지

13

24-2

아래 Java 프로그램이 출력하는 문자열을 적으시오.

public class Main {
    static String keep(String s, int i, boolean[] used) {
        if (i == s.length()) return "";
        char c = s.charAt(i);
        if (used[c]) return keep(s, i + 1, used);
        used[c] = true;
        String rest = keep(s, i + 1, used);
        return rest + c;
    }
    public static void main(String[] args) {
        boolean[] used = new boolean[128];
        System.out.println(keep("mississippi", 0, used));
    }
}
해설

psim


[해설]

keep은 앞에서부터 문자를 보며, 처음 나온 문자만 used에 표시하고 이미 나온 문자는 건너뛴다.

  • "mississippi"에서 처음 나오는 문자: m(0), i(1), s(2), p(8)
  • 각 호출은 rest + c, 즉 뒤쪽 결과 뒤에 자기 문자를 붙여 돌려준다.
  • p → "p", s → "ps", i → "psi", m → "psim"

재귀가 되돌아오면서 순서가 뒤집히므로 출력은 psim이다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.