다음 C 프로그램이 두 번째 문자열에서 정확히 한 번 발견되는 문자를 골라내는 과정을 추적하여 출력 결과를 쓰시오.
#include <stdio.h>
int main(void) {
const char source[] = "sensor";
const char pool[] = "response";
for (int i = 0; source[i] != '\0'; i++) {
int count = 0;
for (int j = 0; pool[j] != '\0'; j++) {
if (source[i] == pool[j]) {
count++;
}
}
if (count == 1) {
putchar(source[i]);
}
}
return 0;
}모범답안
nor
풀이와 판단 근거
source의 각 문자마다 pool 전체를 다시 훑어 출현 횟수를 센다. pool에서 s와 e는 각각 두 번이므로 출력되지 않는다.
n, o, r은 각각 한 번씩 나타나며 source에서 만나는 순서대로 출력된다. 따라서 결과는 `nor`다.
단순 교집합이 아니라 출현 횟수가 정확히 1이라는 조건을 적용해야 한다.
자주 틀리는 지점
- 한 번 이상 발견된 모든 문자를 출력해 sensor라고 작성함
- pool의 순서대로 n, o, r을 재배열함
- 반복되는 s와 e도 한 번씩만 출력하면 된다고 판단함
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.