2908번 상수 문제

김영헌·2022년 1월 19일
0

백준

목록 보기
5/7
post-thumbnail

문제

상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 개를 칠판에 써주었다. 그 다음에 크기가 큰 수를 말해보라고 했다.

상수는 수를 다른 사람과 다르게 거꾸로 읽는다. 예를 들어, 734와 893을 칠판에 적었다면, 상수는 이 수를 437과 398로 읽는다. 따라서, 상수는 두 수중 큰 수인 437을 큰 수라고 말할 것이다.

두 수가 주어졌을 때, 상수의 대답을 출력하는 프로그램을 작성하시오.

조건

  • 입력된 두 수는 같지 않음.
  • 무조건 세자리 수임.
  • 0이 포함되어 있지 않음.

알고리즘

  1. 숫자 두개를 입력받음
  2. %와 / 사용하여서 숫자 값을 뒤집어줌
  3. 비교 후 출력

오늘 배운거

  • 여기 코드에 사용되지 않았지만 지금 int를 사용하기 전 한번 char array로 시도를 해보았다. 하지만, scanf(”%s”, first); scanf(”%s”, second); 를 사용했는데 알 수 없는 이유로 계속 first의 first[0]이 읽혀지지가 않았다. 왜 인지 이유를 아직 찾지는 못했지만 오늘 배운거는 scanf를 string으로 읽을때 연속으로 사용하면 무언가 문제가 생긴다는 것이다.

코드

#include <stdio.h>

int main(){
    int first;
    int second;
    scanf("%d", &first);
    scanf("%d", &second);
    
    first = (first/100) + ((first/10)%10)*10 + ((first%100)%10)*100;
    second = (second/100) + ((second/10)%10)*10 + ((second%100)%10)*100;

    if(first > second)
        printf("%d", first);
    else
        printf("%d", second);
}
profile
대기업 회장님

0개의 댓글