본문 바로가기
백준(C언어)/22년 7월

7월 24일(일) - 6단계(2908번)

by C0MPAS 2022. 7. 24.

6단계 - 2908번

 

2908번: 상수

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두

www.acmicpc.net

 

문제점

1.  a,b를 정수가 아닌 문자열로 입력받았기 때문에, 최종적으로 a,b의 크기를 비교하는 과정에서 어려움을 겪었다.

-> (int)a (int)b로 크기 비교가 아닌, <string.h>에서 문자열의 크기를 비교하는 strcmp함수를 이용했다

-> strcmp함수에서는 입력된 두 문자열 중에서 앞에 입력된 문자열의 크기가 더 클 경우 1을 출력한다

-> 위의 사실을 이용해서 문자열 a,b의 크기를 비교했다

 

///////////////////////////////////

c/c++에서 정수 뒤집는 방법과 관련해서 추가적으로 공부해볼 내용

https://doodle-ns.tistory.com/17

///////////////////////////////////

풀이

#define _CRT_SECURE_NO_WARNINGS
#pragma warning(disable: 4996)

#include <stdio.h>
#include <string.h>
 
int main(void)
{
	char a[4], b[4], tmp_a, tmp_b;
	scanf("%s", a);
	scanf("%s", b);

	tmp_a = a[0];
	a[0] = a[2];
	a[2] = tmp_a;
	
	tmp_b = b[0];
	b[0] = b[2];
	b[2] = tmp_b;
	
	if (strcmp(a,b) > 0)
	{
		printf("%s", a);
	}
	else
	{
		printf("%s", b);
	}

	return 0;
}

출처: https://www.acmicpc.net/problem/2908

댓글