celina의 이것저것
[백준 c 2908] 상수 본문
반응형
문제
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.
두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 상근이가 칠판에 적은 두 수 A와 B가 주어진다. 두 수는 같지 않은 세 자리 수이며, 0이 포함되어 있지 않다.
출력
첫째 줄에 상수의 대답을 출력한다.
코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main() {
char a[10];
char b[10];
char tmp;
scanf("%s %s", a, b);
tmp = a[0];
a[0] = a[2];
a[2] = tmp;
tmp = b[0];
b[0] = b[2];
b[2] = tmp;
if (strcmp(a,b) > 0) {
printf("%s", a);
}
else {
printf("%s", b);
}
return 0;
}
풀이
두 수를 비교할 문자열배열을 각각 만들어 준다.
입력받은 문자열의 처음(a[0])숫자와 맨마지막(a[2])숫자를 바꾸면 숫자를 거꾸로 읽을 수 있게 된다
strcmp함수로 문자열을 비교해서 출력한다
strcmp함수는 string1 및 string2를 비교하는 함수이다. 이 함수는 null로 끝나는 스트링에서 작동한다
strcmp()의 리턴값값의미
0보다 작음 | string1이 string2보다 작음 |
0 | string1이 string2와 같음 |
0보다 큼 | string1이 string2보다 큼 |
학습
첫 시도에서 틀렸었는데 그 이유가 strcmp함수를 쓰지 않아서 틀렸다.
그냥 a>b 를 비교해서 틀린것이었다. 문자열을 비교할땐 strcmp함수를 쓰자
출처
2908번: 상수
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두
www.acmicpc.net
'자료구조&알고리즘 > 백준' 카테고리의 다른 글
[백준 c 10872] 팩토리얼 (0) | 2022.11.07 |
---|---|
[백준 c 1152] 단어의 개수 (0) | 2022.11.02 |
[백준 c 2675] 문자열 반복 (0) | 2022.10.28 |
[백준 c 11720] 숫자의 합 (0) | 2022.10.27 |
[백준 c 11654] 아스키코드 (0) | 2022.10.27 |
Comments