두 수의 연산값 비교하기

nacSeo (낙서)·2023년 12월 29일
0

프로그래머스

목록 보기
6/169

문제 설명

연산 ⊕는 두 정수에 대한 연산으로 두 정수를 붙여서 쓴 값을 반환합니다. 예를 들면 다음과 같습니다.

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;
    }
}
  1. int값 a, b를 붙여서 쓰기 위해 문자열로 변환하는 함수 String.valueOf()를 통해 문자열 ab 정의
  2. 붙인 값을 다시 2ab와 비교하기 위해 Integer.parseInt()함수를 통해 변환, int값 abValue로 정의
  3. 두 값을 비교

다른 사람 코드

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;
        }
    }
}
  1. 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() 함수 사용

느낀 점

이 전 문제와 거의 비슷한 문제. 보다 가독성 좋고 간단한 코드로 짤 수 있음.

profile
백엔드 개발자 김창하입니다 🙇‍♂️

0개의 댓글