본문 바로가기
공부하자/알고리즘

[백준] 2908번 상수 C, java

by snbrin 2022. 1. 13.

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

 

2908번: 상수

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

www.acmicpc.net

 

C

#include <stdio.h>
#include <string.h>

int main() {

	char n1[4];		//첫번째 입력
	char n2[4];		//두번째 입력
	char temp1, temp2;	//문자열을 뒤집을 때 사용할 변수

	scanf("%s %s", n1, n2);		// 문자열 두개 입력

	temp1 = n1[0];
	n1[0] = n1[2];
	n1[2] = temp1;		//첫번째 문자열 뒤집기

	temp2 = n2[0];
	n2[0] = n2[2];
	n2[2] = temp2;		//두번째 문자열 뒤집기	

	//strcmp로 문자열 비교하기
	if (strcmp(n1, n2) > 0)		//strcmp가 0보다 크면 n1이 더 큰 값
		printf("%s", n1);		
	else				//strcmp가 0보다 작거나 같으면(값이 같은 경우는 없다고 했으므로 무시)
		printf("%s", n2);	//n2가 더 클 경우


	return 0;
}

strcmp(a,b)는 a와 b를 비교하는 함수

값이 0보다 크면 a > b이고, 0보다 작으면 a < b, a와 b가 같으면 0이 리턴된다.

 

java

문자열이 가변적이고 멀티쓰레드 환경이 아니라면 StringBuiller을 사용해보자.

package javastd1;

import java.util.Scanner;

public class bj2908 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub

		
		Scanner sc = new Scanner(System.in);
		
		int n1 = sc.nextInt();
		int n2 = sc.nextInt();
		
		n1 = Integer.parseInt(new StringBuilder().append(n1).reverse().toString());
		n2 = Integer.parseInt(new StringBuilder().append(n2).reverse().toString());
		//문자열 반전을 위해 StringBuilder클래스의 reverse()메서드를 사용한다.
		//reverse()로 문자열 반전 후 
		//toString()메서드로 StringBuiller 타입인 값을 문자열 객체를 가져온다.
		//n1,n2는 int이므로 문자열로 가져온 값을 Integer.parseInt()로 타입을 변경한다.
		
		if(n1>n2) 
			System.out.println(n1);
		else
			System.out.println(n2);
		
		
		sc.close();
		
	}

}