작성
·
164
0
3번째 예시를 시작지점 알파벳과 첫행기준 얼만큼 출력할지를 입력으로 받아서 출력하는 걸로 변형을 해봤는데요
교수님이 코딩한거랑 다르게
변수를 추가를하여 작성하였는데요.
그로인해 코드의 길이가 더 늘어난 감이 없지않은데
혹시 이런방식이 속도면에서 문제가 되는지 궁금합니다.
int main()
{
char alphabet = 0;
int number = 0, originNumber = 0;
char originAlphabet;
printf("%s\n", "Input Alphabet what you want to start through and how many to print");
scanf("%c %d", &alphabet, &number);
originAlphabet = alphabet;
originNumber = number;
printf("%s\n\n", "Result is being printed......");
for (int i = 0; i < originNumber; i++)
{
alphabet = originAlphabet++;
for (int j = 0; j < number; j++)
{
printf("%c ", alphabet);
alphabet++;
}
number--;
printf("\n");
}
printf("%s\n", "Printing completed.....");
}
답변 1
1
프로그램의 유의미한 속도 차이가 있는지 보려면 입력 크기와 반복문의 수행 횟수를 따져보면 되는데 (알고리즘 면에서 이런 방식으로 성능 체크를 합니다.), 강의의 코드와 질문자님의 코드는 for문의 수행 횟수가 동일합니다. 꽤 크기가 큰 배열의 원소들을 복사해 오는 그런게 아닌 이상 한 두 개의 변수 대입 정도는 속도에 영향이 없다시피 합니다. 결론은 속도 차이 거의 없다고 볼 수 있습니다. 첫번째 for문이 도는 횟수인 originNumber 가 어마어마하게 큰 숫자라면 alphabet = originAlphabet++ 대입도 그만큼 이루어진다는 것이니 이땐 좀 속도 차이가 조금은 있을지도 모르겠네요.
이렇게 속도가 어떨지 대충 가늠해 보시려면 코드 길이보단 "수행 횟수", "입력 크기"를 따져보시면 됩니다.
감사합니다!!!!