알고리즘공부
프로그래머스 Lv0 - 더 크게 합치기
jonghyeon6084
2024. 3. 6. 11:28
728x90
1. 문제 설명
- 연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
- 2 ⊕ 3 = 123
- 3 ⊕ 12 = 312
- 양의 정수 a와 b가 주어졌을 때, a ⊕ b 와 b ⊕ a 중 더 큰 값을 return 하는 함수를 완성해 주세요. 단, a ⊕ b 와 b ⊕ a 가 같다면 a ⊕ b를 return 합니다.
2. 제한사항
- 1 <= a, b < 10000
3. 입출력 예
4. 내가 작성한 코드
class Solution {
public int solution(int a, int b) {
int answer = 0;
String value1 = Integer.toString(a);
String value2 = Integer.toString(b);
String x = value1 + value2;
String y = value2 + value1;
int value3 = Integer.parseInt(x);
int value4 = Integer.parseInt(y);
if(value3 >= value4){
answer = value3;
} else {
answer = value4;
}
return answer;
}
}
여기서 알아야 할 것은 String 을 int 로 바꿔주는 Integer.parseInt() 와 int 를 String 으로 바꿔주는 Integer.toString() 이다.
하지만 내가 위에 작성한 코드는 너무 길며, java에서는 문자열 + 숫자를 하면 다 같이 문자열로 인정하는 것을 이용하면 코드의 양을 줄일 수 있다. 그리고 삼단논법을 통해서 if문도 더 줄여보았다.
5. 수정한 코드
class Solution {
public int solution(int a, int b) {
int answer = 0;
String x = "" + a + b;
String y = "" + b + a;
int value1 = Integer.parseInt(x);
int value2 = Integer.parseInt(y);
answer = (value1 >= value2) ? value1 : value2;
return answer;
}
}