연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
12 ⊕ 3 = 123
3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.
단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.
풀이 후 다른 사람들의 정답을 보니 훨씬 간단한 게 많았다.
특히 if문 대신 삼항 연산자를 사용하거나 Math.max()를 사용해 더 큰 값을 반환하도록 하는 방법,
String.valueOf() 대신 빈 문자열을 넣어 a와 b를 더한 뒤 정수로 파씽해 변수를 최대한 덜 사용하는 방법들을 보며 취약한 부분에 대해 생각해볼 수 있었다.
class Solution {
public int solution(int a, int b) {
int answer = 0;
String sab = String.valueOf(a) + String.valueOf(b);
String sba = String.valueOf(b) + String.valueOf(a);
int iab = Integer.parseInt(sab);
int iba = Integer.parseInt(sba);
if(iab >= iba){
answer = iab;
}else{
answer = iba;
}
return answer;
}
}
