컴퓨터/프로그래머스

[Java] 프로그래머스 코딩테스트 연습 / 두 수의 연산값 비교하기

peridott 2026. 1. 10. 22:20

문제


정답

class Solution {
	public int solution(int a, int b) {
    	int plusCase = integer.parseInt(String.valueOf(a) + String.valueOf(b));
        int multiplyCase = 2 * a * b;
        return plusCase > multiplyCase ? pluseCase : multiplyCase;
	}
}

개념 설명

1. Integer.parseInt(...)

Integer.parseInt(String)

✔️ 역할

  • 문자열(String)을 정수(int)로 변환해주는 매서드
  • 반환 타입은 int(기본형)

✔️ 왜 필요한가?

자바에서는 문자열 "12"와 숫자 12는 완전히 다른 타입이라 연산(비교, 덧셈 등)을 하려면 숫자로 변환해야 함.

✔️ 예시

int x = Integer.parseInt("123"); // x = 123

❌ 숫자가 아닌 문자열이면 오류 발생

Integer.parseInt("abc"); // NumberFormatException

 

2. String.valueOf(a)

String.valueOf(int)

✔️ 역할

  • 숫자 → 문자열(String)으로 변환
  • 어떤 타입이 와도 Stirng으로 바꿔줌

✔️ 예시

String s = String.valueOf(10); // "10"

즉,

String.valueOf(a)

는 a라는 정수를 "a" 형태의 문자열로 바꾼다.

 

3. 문자열 덧셈 (+ 연산자)

String.valueOf(a) + String.valueOf(b)

✔️ 여기서 +는?

  • 산술 덧셈 ❌
  • 문자열 연결(concatenation) ⭕

✔️ 동작 예시

a = 12
b = 34

String.valueOf(a) = "12"
String.valueOf(b) = "34"
String.valueOf(a) + String.valueOf(b) = "1234"

 

4. 전체 첫 줄 해석

int plusCase = Integer.parseInt(String.value(a) + String.value(b));
  1. a → 문자열
  2. b → 문자열
  3. 두 문자열을 이어 붙임
  4. 다시 숫자로 변환
  5. int 변수에 저장

✔️ 실제 예시

a = 9, b = 1
"9" + "1" = "91"
Integer.parseInt("91") = 91

plusCase = 91

 

5. int multiplyCase = 2 * a * b;

✔️ 역할

  • 정수 곱셈
  • 연산자 우선순위에 따라 왼쪽부터 계산

✔️ 계산 순서

2 * a * b
→ (2 * a) * b

 

6. 삼항 연산자 (조건 연산자)

return plusCase > multiplyCase ? plusCase : multiplyCase;

✔️ 기본 구조

조건식 > 참일 때 값 : 거짓일 때 값

✔️ 이 코드의 의미

pluseCase가 multiplyCase보다 크면

→ pluseCase 반환

아니면

→ multiplyCase 반환

 

✔️ if문으로 바꾸려면?

if (pluseCase > multiplyCase) {
	return plusCase;
} else {
	return multiplyCase;
}

 

7. 비교 연산자 >

plusCase > multiplyCase

✔️ 역할

  • 두 정수를 비교
  • 결과는 boolean (true / false)

🔚 전체 코드 한 줄 씩 요약

class Solution { // Soution이라는 클래스 선언
	public int solution(int a, int b) { // 외부에서 호출 가능한 메서드, 정수 두 개 입력 → 정수 하나 반환
    	int plusCase = Integer.parseInt(String.valueOf(a) + String.valueOf(b)); // 숫자 a, b를 문자열로 붙여 하나의 숫자로 만든 경우
        int multiplyCase = 2 * a * b; // 두 숫자를 곱한 경우
        return plusCase > multiplyCase ? plusCase : multiplyCase; // 두 결과 중 더 큰 값 반환
	}
}

 

💡 핵심 포인트 정리

문법 의미
String.valueOf() 숫자 → 문자열
+ (String) 문자열 연결
Integer.parseInt() 문자열 → 정수
? : 삼항 연산자
> 크기 비교