코드 그라데이션

[Lv.0] 더 크게 합치기 본문

Java/알고리즘

[Lv.0] 더 크게 합치기

완벽한 장면 2023. 7. 26. 22:33

https://school.programmers.co.kr/learn/courses/30/lessons/181939

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 설명

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

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

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

 

제한사항

 

입출력 예

 

입출력 예 설명

 

 

아이디어

  • 문자열은 바로 붙일 수 있다.

초기 코드

class Solution {
    public int solution(int a, int b) {
        if(ab>ba) {
            return ab;
        } else if(a<b) {
            return ba;
        } else {
            return ab;
        }
    }
}

- 일단 아이디어는 좋음.

- 지금 여기서는 ab라는 변수가 있는 거 아니야? 뭐 이런 것 때문에 안 됨.

- 그래서 방법은 문자열로 바꾸는 것.

그리고 이것을 다시 숫자로 만드는 작업. Integer.parseInt() 

- 비교는 숫자로 한다.

- a가 크면 이렇게, b가 크면 저렇게가 아니라, ab, ba 각각 붙여보고 비교하고 난 뒤에 어떻게 하라. 

- 반환할 때 숫자로 바꿔서...!!!

나의 코드

class Solution {
    public int solution(int a, int b) {
        String resultA = a+""; 
        String resultB = b+"";
        int x = Integer.parseInt(resultA+resultB);
        int y = Integer.parseInt(resultB+resultA);
        if(x>y) {
            return x;
        } else if(x<y) {
            return y;
        } else {
            return x;
        }

    }
}
// a = 12, b = 3;
// 123 => ab
// a = 3, b = 12
// 312 =-> ba
728x90

'Java > 알고리즘' 카테고리의 다른 글

[Lv.0] 배열 비교하기  (0) 2023.09.14
[Lv.0] 배열 만들기 1  (0) 2023.09.13
[Lv.0] 마지막 두 원소  (0) 2023.07.16
[Lv.0] 마지막 두 원소  (0) 2023.07.10
[Lv.0] 주사위 게임 1  (0) 2023.07.06
Comments