관련 이론 및 문법

(TreeSet 클래스 참고)

http://kkikkodev.tistory.com/119


문제 의도

주어진 소스코드를 컴파일하여 실행한 결과를 고르는 문제입니다.


답안

F


풀이 방법

이 문제는 TreeSet 에 대한 문제입니다. 소스코드를 실행하면 main 메소드가 호출되고, 두 개의 TreeSet<Integer> 변수 s 와 subs 를 각각 생성합니다. 그 다음에 for 문을 돌면서, i 를 606 부터 612 까지 1 씩 증가시키면서, i 가 짝수일 때만 (i % 2 == 0) i 를 s 에 추가합니다. 즉, s 에는 현재 [606, 608, 610, 612] 가 있습니다. (TreeSet 이라 정렬됨)


그 다음에 for 문을 나와서, s.subSet(608, true, 611, true) 를 통해서, 부분 set 을 생성하여 subs 에 대입합니다. 2 번째와 4 번째 매개변수가 true 이기 때문에, 608 과 611 값을 포함하는 데이터들을 기준으로 추출하여 sub set 을 만듭니다. 따라서, subs 에는 현재 [608, 610] 이 있습니다. (TreeSet 이라 정렬됨) 그 다음에 s 에 609 를 다시 add 합니다. 현재 s 는 [606, 608, 609, 610, 612] 이고, subs 도 같이 변경이 적용되어 [608, 609, 610] 이 됩니다. 609 는 subs 의 범위인 608 ~ 611 사이에 포함되기 때문에, subs 에도 노출이 되는 것입니다.


마지막 라인에서 s 와 subs 를 차례대로 출력하면 [606, 608, 609, 610, 612] [608, 609, 610] 이 출력되고 답안은 F 가 됩니다.


by kkikkodev 2015. 8. 21. 01:33