문제 설명
연산 ⊕ 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.
- 12 ⊕ 3 = 123
- 3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 2 * a * b 중 더 큰 값을 return 하는 soultion함수를 완성해주세요.
단, a ⊕ b와 2 * a * b가 같다면 a ⊕ b를 return 합니다.
(문제 풀이)
전에 풀었던 더 크게합치기 문제에서 정수형 랩퍼클래스 안에 있는 메서드를 이용해서 풀었던게 생각이 나서 그걸 응용해서 풀어봤습니다. 처음에 문자열끼리 합쳐서 값을 나타내야 하기 때문에 정수형값을 가진 변수를 toString()으로 문자열로 바꾼 뒤 두 문자열을 합쳐서 다시 정수형으로 바꾸는 parseInt()를 사용해 합친 문자열을 숫자로 변환했습니다.
그렇게 되면 12 ⊕ 3 = 1234 이 조건은 완성이 되고 2 * a * b의 조건을 만들기 위해서는 다른 변수를 선언해 2 * a * b의 값을 저장할 수 있는 변수를 선언해서 값을 넣었습니다.
그렇게 두 개의 조건을 갖춘 변수를 가지고 if()문인 조건문을 이용해서 문자열을 끼리 합친 변수 ab와 2 * a * b를 합친 mulaa를 조건을 두어 ab가 크면 ab가 리턴하도록, mulaa가 크면 mulaa가 리턴하도록 로직을 짜봤습니다. 하지만 저 위에서 추가로 조건이 붙여진게 있는데 ab와 mulaa의 값이 같게되면 a ⊕ b의 값을 리턴해야 하기 때문에
추가적으로 조건문에 or연산자를 사용해서 조건을 추가했습니다. 그렇게 완성된 로직은 다음과 같습니다.
(코드)
class Solution {
public int solution(int a, int b) {
int answer = 0;
int ab = Integer.parseInt(Integer.toString(a)+Integer.toString(b));
int mulaa = 2*a*b;
if(ab>mulaa || ab == mulaa){
answer = ab;
}else{
answer = mulaa;
}
return answer;
}
}
(출력)
(결론)
이번 문제는 저번에 풀었던 문제와 거의 유사하지만 곱셈이 추가된 조건이 존재해서 or연산자를 이용해 풀어봤던것 같습니다.
저번 문제에서 배웠던 Integer 메서드인 parseInt 메서드를 이용해서 풀었던 것을 이번에도 사용하게 되어서 되새김질을 할수 있었던 문제였습니다.
'프로그래머스 기초' 카테고리의 다른 글
[프로그래머스 기초] Java Lv.0 n의 배수 (0) | 2024.12.01 |
---|---|
[프로그래머스 기초] Java Lv.0 더 크게 합치기 (0) | 2024.11.24 |
[프로그래머스 기초] Java Lv.0 문자열 곱하기 (0) | 2024.11.24 |
[프로그래머스 기초] Java Lv.0 (2) 문자리스트를 문자열로 변환하기 (0) | 2024.11.17 |
[프로그래머스 기초] Java Lv.0 (1) 문자열 섞기 (0) | 2024.11.17 |