본문 바로가기
Coding Test/Java Coding Test

[프로그래머스 / 자바] 더 크게 합치기

by nam_ji 2023. 11. 27.

더 크게 합치기

문제 

  • 두 정수 사이에 기호가 있으면
    두 정수를 붙이는 역할을 합니다.
  • b와 b a를 했을 때 더 큰 값을 출력하는 문제입니다.
  • 붙인 두 값을 같다면 a  b를 출력합니다.


테스트 (이클립스)

  • 우선 정수를 String.valueOf() 메소드를 이용하여 문자열로 변환합니다.
  • 변환한 값을 더해준 후 다시 합쳐진 문자열을 Integer.parseInt() 메소드로 정수로 변환합니다.
  • if문을 사용하여 두 정수를 비교 후 answer에 담아 출력하면 됩니다.
package com.namji.codingtest;

public class CombineBigger {
	public static void main(String[] args) {
		/*
		 *  두 정수 사이에  ⊕기호가 있으면
		 *  두 정수를 붙이는 역할을 합니다.
		 *  양의 정수 a와 b가 주어질 때 
		 *  a ⊕b와 b ⊕a를 했을 때 더 큰 값을 출력하는 문제입니다.
		 *  붙인 두 값이 같다면a ⊕b를 출력합니다.
		 *  a 9 b 91 > 991, 919 / a 89 b 8 > 898, 889
		 */
		int a = 89;
		int b = 8;
		String ab = String.valueOf(a) + String.valueOf(b);
		String ba = String.valueOf(b) + String.valueOf(a);
		int AB = Integer.parseInt(ab);
		int BA = Integer.parseInt(ba);
		if (AB > BA) {
			System.out.println(AB);
		} else if (AB < BA) {
			System.out.println(BA);
		} else {
			System.out.println(AB);
		}
	}
}


프로그래머스 코드


다른 사람 풀이

  • 더 간단한 후기를 봐서 그 방법도 올립니다.
  • +기호를 통해 연산을 할 때 문자열이 하나라도 존재하게 된다면 정수도 문자열로 변환되어 계산된다는 것을 이용하고
  • 그 후 삼항 연산자를 이용하여 간단하게 만든 풀이입니다.
package com.namji.codingtest;

public class CombineBigger {
	public static void main(String[] args) {
		/*
		 *  두 정수 사이에  ⊕기호가 있으면
		 *  두 정수를 붙이는 역할을 합니다.
		 *  양의 정수 a와 b가 주어질 때 
		 *  a ⊕b와 b ⊕a를 했을 때 더 큰 값을 출력하는 문제입니다.
		 *  붙인 두 값이 같다면a ⊕b를 출력합니다.
		 *  a 9 b 91 > 991, 919 / a 89 b 8 > 898, 889
		 */
		int a = 5;
		int b = 5;
		int ab = Integer.parseInt(""+ a + b);
		int ba = Integer.parseInt(""+ b + a);
		int answer = ab > ba ? ab : ba;
		System.out.println(answer);
	}
}