문제 설명
우리는 숫자를 int나 long long으로 숫자를 처리하였다.
이번엔 그보다 더 큰 숫자를 비교해보자.
최대 100자리의 두 숫자가 입력되면 작은수와 큰 수를 차례대로 출력하시오.
입력
정수 두개가 입력된다.(최대 100자리) - 같은 숫자는 입력되지 않는다.
출력
작은수 큰수 순서로 출력한다.
입력 예시
9999999999999999999999999 9999999999999999999999998
출력 예시
9999999999999999999999998 9999999999999999999999999
나의 코드
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str1[100], str2[100];
scanf("%s %s", str1, str2);
if(strlen(str1) > strlen(str2)) { // 문자열의 길이 비교 후 출력
printf("%s %s", str2, str1);
}
else if(strlen(str1) < strlen(str2)) {
printf("%s %s", str1, str2);
}
else {
for(int i=0;i<strlen(str1);i++) // 문자열 길이 만큼 반복
{
if(str1[i] > str2[i]) // 문자열 아스키 코드 비교
{
printf("%s %s", str2, str1); // 출력 후 종료
return 0;
}
else if(str1[i] < str2[i])
{
printf("%s %s", str1, str2);
return 0;
}
}
}
return 0;
}
모범 답안
#include <stdio.h>
#include <string.h>
int main()
{
int l1, l2;
char str1[101], str2[101];
int i;
scanf("%s %s", str1, str2);
l1 = strlen(str1);
l2 = strlen(str2);
if (l1 > l2)
printf("%s %s", str2, str1);
else if (l1 < l2)
printf("%s %s", str1, str2);
else {
for(i = 0; i < l2; i++)
if (str1[i] > str2[i]) {
printf("%s %s", str2, str1);
return 0;
}
else if (str1[i] < str2[i]) {
printf("%s %s", str1, str2);
return 0;
}
else ;
}
return 0;
}
문제 바로가기 : https://codeup.kr/problem.php?id=1754
'알고리즘 공부 > CodeUp 문제풀이' 카테고리의 다른 글
코드업 2844:도서 대출 시스템 (0) | 2023.09.23 |
---|---|
코드업 2721:순환 문자열 (0) | 2023.09.21 |
코드업 1283:주식 투자(C) (0) | 2023.09.19 |
코드업 1180:만능 휴지통(C) (0) | 2023.09.19 |
코드업 1677:종이자르기(C) (2) | 2023.09.18 |