celina의 이것저것

[백준 c 2908] 상수 본문

자료구조&알고리즘/백준

[백준 c 2908] 상수

celinayk 2022. 10. 28. 21:41
반응형

문제

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.
상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 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번: 상수 (acmicpc.net)

 

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