문제 설명
연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
12 ⊕ 3 = 123
3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 a b 중 더 큰 값을 return하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 2 a b가 같으면 a ⊕ b를 return 합니다.
제한 사항
1 ≤ a, b < 10,000
나의 코드
class Solution {
public int solution(int a, int b) {
int answer = 0;
String ab = String.valueOf(a) + String.valueOf(b);
int abValue = Integer.parseInt(ab);
if(abValue > 2*a*b || abValue == 2*a*b) {
answer = abValue;
} else {
answer = 2*a*b;
}
return answer;
}
}
String.valueOf()
를 통해 문자열 ab 정의Integer.parseInt()
함수를 통해 변환, int값 abValue로 정의다른 사람 코드
class Solution {
public int solution(int a, int b) {
int ab = Integer.parseInt(a + "" + b);
if(2 * a * b <= ab) {
return ab;
} else {
return 2 * a * b;
}
}
}
Integer.parseInt
함수에서 int값 사이에 ""
를 더해 문자열을 한 번에 붙여서 int값으로 바꿔줌class Solution {
public int solution(int a, int b) {
return Math.max(Integer.parseInt(String.valueOf(a)+String.valueOf(b)),2*a*b);
}
}
Math.max() 함수 사용
느낀 점
이 전 문제와 거의 비슷한 문제. 보다 가독성 좋고 간단한 코드로 짤 수 있음.