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
문제 설명

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
반응형
'알고리즘' 카테고리의 다른 글
[LeetCode/JAVA] 103. Binary Tree Zigzag Level Order Traversal (0) | 2021.07.20 |
---|---|
[LeetCode/JAVA] 70. Climbing Stairs (0) | 2021.07.20 |
[LeetCode/JAVA] 226. Invert Binary Tree (0) | 2021.07.18 |
[LeetCode/JAVA] 617. Merge Two Binary Trees (0) | 2021.07.18 |
[LeetCode/JAVA] 58. Length of Last Word (0) | 2021.07.18 |
댓글