본문 바로가기
알고리즘

[LeetCode/JAVA] 1323. Maximum 69 Number

by 상후 2021. 7. 19.
728x90
반응형

https://github.com/ROUTINE-STUDY/Algorithm

 

ROUTINE-STUDY/Algorithm

초보 알고리즘 스터디 / 누구나 참여 가능 :runner:. Contribute to ROUTINE-STUDY/Algorithm development by creating an account on GitHub.

github.com

알고리즘 스터디를 진행하고 있습니다.
초보들로 구성되어있으며, 열심히 풀어보고 풀이 방식을 공유하고 피드백을 해주는 스터디입니다.
문의는 댓글 혹은 GitHub 주소를 참고해주세요.

문제 출처 : https://leetcode.com/problems/maximum-69-number/

 

Maximum 69 Number - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제 설명

출처 : LeetCode

6과 9로 이루어진 정수(num)가 있습니다.
단 한 자리만 바꿔 가장 큰 수를 반환합니다.
1 <= num <= 10^4
풀이 방법
문제 내 num의 범위를 활용하였습니다. ( 1 <= num <= 10000)
최대 수는 9999 이므로 1000부터 나누기 시작합니다.
1000의 자리부터 가져오고 가장 먼저 나온 6을 9로 바꿔줍니다.
이때, 해당 자리값 X 3을 더해주면 끝입니다.

Input : 6999 / 9969
Output : 6999 + 3000 = 9999 / 9969 + 30 = 9999
내 코드(JAVA)

 

/**
 * 문제 내 1 <= num <= 10^4 인 점을 활용
 * 제일 큰 자리수로 6이 나오면 그 수를 바꿔주면 끝
 * 9969 > 9969 + 30 = 9999
 */
public int maximum69Number (int num) {
    int res = num;

    int x = 1000;
    while(num > 0) {
        if(num/x == 6) {
            res += x*3;
            break;
        }
        num = num%x;
        x /= 10;
    }

    return res;
}
다른 사람 코드

 

public int maximum69Number (int num) {
	return Integer.parseInt(("" + num).replaceFirst("6", "9"));
}

 

replaceFirst 메서드를 이용한 방법

String + int = String 이기 때문에 정수형 num을 String으로 형 변환합니다.

첫 번째로 나오는 6을 찾아 9로 변경하여 반환하면 끝.

깔끔하네요!

728x90
반응형

댓글