인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

픽린님의 프로필 이미지
픽린

작성한 질문수

홍정모의 따라하며 배우는 C언어

6.15 중첩된 루프들

문제를 올바르게 구현해내는 방법을 잘 생각해내질 못합니다. (강의 1:00 첫번째 문제)

해결된 질문

작성

·

232

2

그렇게 큰 문제는 아닙니다. 다만 걱정이 되어서 질문을 작성해봅니다.

첫번째 예제
강의에서 교수님께서 원하는 첫글자에서 원하는 마지막 글자까지 출력을 하고, 그 전체 출력도 원하는 횟수만큼 반복하여 출력하라고 말씀하셨습니다.

제가 생각하기에는, 프로그래머가 원하는 첫글자와 마지막 글자, 원하는 횟수라면 입력을 받아야 그것을 컴퓨터가 인지해서 출력하게되지 않을까 싶어서
맨 앞에 원하는 첫글자, 마지막 글자, 횟수를 입력받도록 하였습니다.
#define CRTSECURE_NO_WARNINGS

#include <stdio.h>

int main()
{
char start; //원하는 시작 문자
int int_start; //시작 문자 정수 취급 변수
char end; //원하는 종료 문자
char int_end = 0; //종료 문자 정수 취급 변수
int repeat_char = 0; //반복할 횟수 입력받는 변수
int i; //전체 출력을 counting해주는 변수

scanf("%c %c %d", &start, &end, &repeat_char);

int_start = start;
int_end = end;

//입력한 start에서 end까지 순서대로 출력, 전체 출력 횟수가 입력한 repeat_char만큼 반복해서 출력
//repeat_char 반복 출력 안에 start~end까지 순서대로 출력하는 문장이 있어야 할 것 같다
//문자로 입력받는 start와 end를 문자 그대로 취급하면 안될 것 같고, 내부에서 입력받은 문자를 '정수'로 취급하는 일련의 과정이 있어야 할 듯

for (i = 1; i <= repeat_char; i++)
{
for (start = int_start; start <= end; start++)
{
printf("%c ", start);
}
printf("\n");
}
return 0;
}

이렇게 작성을 했고, 맨 위 입력받는 부분을 제외하면 교수님께서 보여주신 예제대로 정상적으로 출력되었습니다.

가끔 백준 문제나 강의에 나온 예제 등을 풀 때 출제자의 의도대로 문제를 풀지 못하는 경우가 종종 있습니다.
이전 강의에서 교수님께서 '학생들이 주입식 교육을 받아서인지 종종 출제자의 의도부터 파악하려는 경향이 있다. 어떻게든 풀어보면서 의도와 원리 파악만 하면 충분하다'라고 하셨었는데,

지금 저처럼 아예 결과부터 다르게 나오도록, 문제를 잘못 이해하고 판단하여 문제를 푸는 행위는 괜찮을까요?

이게 제가 이해를 잘 못하는 것도 있고, 다른쪽으로 확장해서 생각하기 힘든(구현해내는 방법을 잘 생각하지 못하는).. 꽉 막힌 것도 있을 것이라고 생각합니다.
이것들은 문제를 많이 풀수록 나아지는 부분인지 궁금합니다.

답변 1

1

홍정모님의 프로필 이미지
홍정모
지식공유자

애초에 프로그래밍은 내가 만들고 싶은 것을 만드는 것이 기본이며 문제 풀이는 그 목적을 달성하는 방법을 훈련시키는 도구에 불과합니다. 스스로 생각하신 문제를 해결하는 프로그램을 작성하셨다면 아주 좋은 과정을 경험하신 겁니다. 그 과정에서 다른 사람이 제시하는 문제를 이해할 수 있는 바탕도 갖춰지게 됩니다.

픽린님의 프로필 이미지
픽린
질문자

감사합니다. 교수님. 정말 많이 도움받고 있습니다.

픽린님의 프로필 이미지
픽린

작성한 질문수

질문하기