더 크게 합치기

nacSeo (낙서)·2023년 11월 10일
0

프로그래머스

목록 보기
5/169

문제 설명

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

12 ⊕ 3 = 123
3 ⊕ 12 = 312
양의 정수 a와 b가 주어졌을 때, a ⊕ b와 b ⊕ a 중 더 큰 값을 return 하는 solution 함수를 완성해 주세요.

단, a ⊕ b와 b ⊕ a가 같다면 a ⊕ b를 return 합니다.

제한 사항

1 ≤ a, b < 10,000

나의 코드

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        String x = a+"";
        String y = b+"";
        
        String before1 = x+y;
        int after1 = Integer.parseInt(before1);
        String before2 = y+x;
        int after2 = Integer.parseInt(before2);
        
        if(after1>after2) {
            answer += after1;
        } else if (after2>after1) {
            answer += after2;
        } else {
            answer += after1;
        }
        
        return answer;
    }
}
  1. int값인 a,b를 문자열+숫자에서 숫자를 문자열로 처리한다는 사실을 통해 문자열 x,y를 정의
  2. 두 문자열의 합을 구하고 그 값을 Intger.parseInt()함수를 통해 다시 int값으로 바꿔서 정의
  3. 두 값을 비교해 클 때, 작을 때, 같을 때를 비교하여 답을 구함

다른 사람 코드

class Solution {
    public int solution(int a, int b) {
        int answer = 0;
        int aLong = Integer.parseInt(""+a+b);
        int bLong = Integer.parseInt(""+b+a);
        answer = aLong > bLong ? aLong : bLong;

        return answer;
    }
}
  1. int값을 문자열로 바꿔 더한 후, 다시 int값으로 바꿔주는 작업을 한 번에 진행
  2. 삼항연산자 사용
class Solution {
    public int solution(int a, int b) {
        String strA = String.valueOf(a);
        String strB = String.valueOf(b);
        String strSum1 = strA + strB;
        String strSum2 = strB + strA;
        return Math.max(Integer.valueOf(strSum1), Integer.valueOf(strSum2));
    }
}

Math.max() 함수 사용

느낀 점

어떻게 코드를 짜야할 지 머릿 속으로 정리가 되었으나, 그대로 코드로 옮기다 보니 가독성이 안좋아지고 복잡한 코드처럼 보였다. 최대한 함수들을 이용하고 쉬운 작업들을 묶으면 좀 더 좋은 코드가 될 것 같다.

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

0개의 댓글