컴퓨터/프로그래머스

[Java] 프로그래머스 코딩테스트 연습 / 더 크게 합치기

peridott 2026. 1. 23. 17:49

문제


정답

class Solution {
	public int solution(int a, int b) {
    	
        String ab = String.valueOf(a) + String.valueOf(b);
        String ba = String.valueOf(b) + String.valueOf(a);
        
        if(Integer.parseInt(ab) > Integer.parseInt(ba)) {
        	return Integer.parseInt(ab);
        } else {
        	return Integer.parseInt(ba);
        }
    }
}

개념설명

1. 클래스 선언

class Solution {

✔️ 의미

  • solution이라는 클래스 정의

 

2. 메서드 선언

public int solution(int a, int b) {

✔️ 의미

  • 정수 a, b를 받아서 두 수를 서로 다른 순서로 이어 붙인 값 중 큰 수를 반환하는 메서드
요소 의미
public 외부 접근 가능
int 반환 타입 (정수)
solution 메서드 이름
int a 첫 번째 정수
int b 두 번째 정수

 

3. 정수 → 문자열 변환 (a → String)

String ab = String.valueOf(a) + String.valueOf(b);

✔️ 의미

  • 정수 a와 b를 문자열로 바꾼 뒤 이어 붙임
  • 결과를 문자열 ab에 저장

✔️ String.valueOf() 설명

String.valueOf(값)
  • 어떤  타입이든 문자열로 변환
  • 정수 → 문자열로 바꿀 때 자주 사용

 

4. 반대 순서 문자열 만들기

String ba = String.valueOf(b) + String.valueOf(a);

✔️ 의미

  • 이번에는 b → a 순서로 문자열 연결
  • "ba" 형태의 문자열 생성

 

5. if문 시작 (조건 비교)

if(Integer.parseInt(ab) > Integer.parseInt(ba)) {

✔️ 의미

  • 문자열 ab와 ba를 정수로 변환한 뒤 크기 비교

 

6. Integer.parseInt() 설명

Integer.parseInt("문자열")
  • 문자열을 정수(int)로 변환
  • 문자열 안은 숫자만 있어야 함

 

7. 조건식 전체 해석

Integer.parseInt(ab) > Integer.parseInt(ba)

✔️ 의미

  • "ab"를 숫자로 바꾼 값이
  • "ba"를 숫자로 바꾼 값보다 크면 true

✔️ 예시

ab = "123"
ba = "321"

123 > 321 → false

 

8. if문 참일 때 실행

return Integer.parseInt(ab);

✔️ 의미

  • ab가 더 크면
  • ab를 정수로 변환해서 반환
  • 메서드 즉시 종료

 

9. else문 실행

} else {
	return Integer.parseInt(ba);
}

✔️ 의미

  • ab가 크지 않으면 (작거나 같으면)
  • ba를 정수로 변환해서 반환
  • 같은 경우도 else로 처리됨

 

10. 메서드 / 클래스 종료

}
}

🔚 전체 실행 흐름 요약

  1. 정수 a, b 입력
  2. a+b, b+a 형태의 문자열 생성
  3. 문자열을 정수로 변환
  4. 두 값 비교
  5. 더 큰 값을 반환

💡 핵심 포인트 정리

문법 의미
String.valueOf() 값 → 문자열
+ 문자열 연결
Integer.parseInt() 문자열 → 정수
if / else 조건 분기
return 값 반환

⚠️ 주의사항

❌ 불필요한 중복 변환

현재 코드에서는

Integer.parseInt(ab)
Integer.parseInt(ba)

를 여러 번 호출

✔️ 개선 가능

int abNum = Integer.parseInt(ab);
int baNum = Integer.parseInt(ba);
  • 이 코드는 두 정수를 문자열로 이어 붙인 두 경우를 비교하여 더 큰 수를 반환하는 로직이다.