[정올] Beginner_Coder_도형만들기1_구구단_code1291 (C)
두비니
·2020. 11. 29. 05:18
#include <stdio.h>
int main(){
int s, e;
int flag;
while (1) {
scanf("%d %d", &s, &e);
if ((2 <= s && s <= 9) && (2 <= e && e <= 9)) {
break;
}
printf("INPUT ERROR!\n");
}
if (s > e)
flag = -1;
else if (s == e)
flag = 0;
else
flag = 1;
for (int i = 1; i < 10; i++) {
int k = s;
do {
printf("%d * %d = %2d ", k, i, k * i);
k += flag;
} while (k != e);
if( flag != 0)
printf("%d * %d = %2d", e, i, e * i);
printf("\n");
}
}
어떻게든 코드를 늘리지 않겠다는 나의 으지,,
+) 모르는 분들을 위한 설명
우선 이 문제가 까다로운 이유는 증가/감소를 둘 다 고려해야 한다는 점입니다.
당연히 if else문으로 길게 짜도 상관은 없다만 저는 죽어도 코드가 길어지는게 싫은 사람이라 case에 따라서 flag를 설정해주고, 그에 따른 do while문을 작성하였습니다. for문으로 작성해도 상관 없습니다. 저기 마지막에 if( flag != 0 )은 같은 숫자(ex. 3 3)을 넣었을 때 2번 출력돼서 어거지로 집어넣은 코드입니다.
끝!
'Coding_Algorithm > 정올 문제풀이' 카테고리의 다른 글
[정올] Language Coder_출력_형성평가3_code103(Python) (0) | 2021.01.28 |
---|---|
[swat] 삼성 코딩테스트 기출문제 유형 - 수강신청 (0) | 2020.11.30 |
[정올] Language Coder_배열1_형성평가5_code152 (C) (0) | 2020.11.28 |
[정올] Language Coder_배열1_형성평가4_code153 (C) (0) | 2020.11.27 |
[정올] Language Coder_배열1_형성평가3_code152 (C) (0) | 2020.04.15 |