inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

섹션 1 switch-case문 기출문제-1 질문

해결된 질문

161

arginine

작성한 질문수 5

0

KakaoTalk_20240714_191330736.png안녕하세요.

맨 처음에 제가 혼자 풀었을 때는 정답이

DDBCD로 나왔습니다.

제가 풀이를 이런 과정으로 했는데요.

1) n의 0번 인덱스에 있는 73을 sum에 가산 -> 73/30=2 -> default에 있는 "D" 출력

2) n의 1번 인덱스에 있는 95를 sum에 가산 -> 168/30=5 -> default에 있는 "D" 출력

3) n의 2번 인덱스에 있는 82를 sum에 가산 -> 250/3=8 -> case 8부터 default까지의 "BCD" 출력

제 풀이대로 되지 않는 이유가 for문의 중괄호가 switch case문을 감싸고 있지 않아서 그런 건가요?

또, switch case문이 for문의 중괄호에 포함이 되면 제가 작성한 답이 출력이 되나요?

혼자서 이해해보려고 노력했는데 개념이 부족해서 이렇게 질문 올려봅니다. 감사합니다.

python java c 정보처리기사

답변 1

1

주말코딩

안녕하세요,

 

말씀하신 대로 되려면 for 반복문 안에 switch문이 통째로 들어가야 합니다.

지금은 반복문이 모두 끝난 이후에 switch문을 만나기 때문에 sum이 정해져서 들어갑니다.

 

말씀하신 대로 매번 sum을 판단해서 넣으려면

전체를 다 반복문에 넣어서 한 번 반복될 때마다 switch문을 타서 출력하게 해야 합니다.

 

#include <stdio.h>

int main() {
    int n[3] = {73, 95, 82}; // 배열 선언 및 초기화
    int sum = 0;             // sum을 0으로 초기화

    // 배열 요소의 합을 계산
    for (int i = 0; i < 3; i++) {
        sum += n[i];

        switch (sum / 30) {
            case 10:
            case 9:
                printf("A");
            case 8:
                printf("B");
            case 7:
                printf("C");
            default:
                printf("D");
        }
    }

    return 0;
}

이렇게 되면 값이 DDBCD가 됩니다.

 

여기서 근데 주의하셔야 할 점이 있습니다. 만약 case 8 아래에 break;문이 있으면 어떻게 될까요?

#include <stdio.h>

int main() {
    int n[3] = {73, 95, 82}; // 배열 선언 및 초기화
    int sum = 0;             // sum을 0으로 초기화

    // 배열 요소의 합을 계산
    for (int i = 0; i < 3; i++) {
        sum += n[i];

        // sum / 30에 기반한 스위치 문
        switch (sum / 30) {
            case 10:
            case 9:
                printf("A");
            case 8:
                printf("B");
                break;
            case 7:
                printf("C");
            default:
                printf("D");
        }
    }

    return 0;
}

 

이렇게 되면 DDB가 됩니다. 저 break문은 반복문 자체도 깨고 나오기 때문에 다음 반복이 진행되지 않습니다.

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

51

2

26년 1회 실기 해설 강의

0

68

2

53번 4-1 자료 오류 있는 것 같습니다.

0

73

2

7번문제

0

60

2

C언어 변형문제 9번문제 Pdf 수정요청

0

48

2

메서드 오버드라드

0

51

2

실수

0

46

1

공부 우선순위 우선강의 알려주세요

0

90

1

생성자 호출순서 강의 10번 문제 30분대 질문입니다

0

49

2

25년 2회 기출 5:40 질문입니다.

0

43

2

모의고사1회 3번 파이썬문제

0

75

2

C언어 출제변형 6번 문제

0

50

2

c언어 출제변형 강의 질문

0

32

2

28:40

0

34

2

C :  언어 배열과  문자열 수업자료

0

31

2

파이썬 리스트, 딕셔너리 질문

0

43

2

모의고사 관련 질문 건

1

69

3

자료 내용 오류

0

64

2

정적 변수, 정적 메서드(static) v2

0

51

2

v1.2 와 v0.91 PDF

0

104

1

업캐스팅 (부모형태, 자식생성자)

0

51

2

정보처리산업기사 준비중입니다.

0

74

2

실기 D -6

0

105

2

(기출) 2024년 2회 기출문제 - 이론 포함 22분32초 질문입니다

0

60

3