https://www.acmicpc.net/problem/2908
2908번: 상수
상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두
www.acmicpc.net
숫자를 거꾸로 읽는 친구가 숫자간의 대소관계를 어떻게 풀지 해결하는 문제.
오히려 숫자를 거꾸로 읽어서 풀기가 쉬웠다.
그냥 문자열을 하나씩 읽으면서 10의 n승을 순차적으로 곱해주었다.
#include <stdio.h>
#include <string.h>
int main () {
int max; // 더 큰 수를 저장하기 위한 변수
int ten = 1; // 10의 승수
int num = 0; // 문자열에서 추출한 숫자를 저장하기 위한 변수
int temp; // 문자열을 숫자로 바꾼 값을 잠시 저장
char input[8]; // 입력받을 문자열
fgets(input, 8, stdin); // 입력받는다.
for (int i = 0; i < strlen(input); i++) {
if (input[i] == ' ') { // 공백으로 숫자를 구분하므로 공백을 기준으로 한다.
max = num; // 일단 max에 저장해놓고
ten = 1; num = 0; // 초기화
} else {
temp = input[i] - '0'; // 일단 숫자로 바꾸고
num += temp * ten; // 10의 n승을 곱하여 더한다
ten *= 10; // n 1증가
}
}
max = max < num ? num : max; // 여기서의 max : 처음 수, num : 두번째 수. 둘을 비교하여 더 큰 수를 max에 최종적으로 저장
printf("%d", max);
return 0;
}
'coding_test > BAEKJOON' 카테고리의 다른 글
백준 2941번 C언어 풀이 (0) | 2021.08.13 |
---|---|
백준 5622번 C언어 풀이 (0) | 2021.08.13 |
백준 1152번 C언어 풀이 (0) | 2021.08.11 |
백준 1157번 C언어 풀이 (0) | 2021.08.10 |
백준 2675번 C언어 풀이 (0) | 2021.08.10 |