일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- LeetCode
- frontend
- Javascript
- VIM
- 알고리즘
- network
- Graph
- java
- DP
- 안드로이드
- db
- DFS
- 프로그래머스
- git
- Redux
- BFS
- 백준
- vscode
- 그레이들
- 동적 계획법
- react
- Database
- 다이나믹 프로그래밍
- CS
- 자바
- Algorithm
- TypeScript
- Data Structure
- Python
- 리트코드
Archives
- Today
- Total
늘 겸손하게
LeetCode Q - Maximum 69 Number (Java) 본문
Question number 1323
Q : Maximum 69 Number
문제 해설
6과 9로만 이루어진 음수가 아닌 정수 num이 주어졌을 때
숫자를 최대 1 자리를 바꾸어 만들 수 있는 정수 중 가장 큰 정수를 반환하라
제한 사항
- 1 <= num <= 10^4
- num은 6과 9로만 이루어져 있다
문제 풀이
1. 주어진 num을 String 클래스 객체 testString로 바꾼다.
2. testString의 각 문자를 정수로 변환하여 정수형 배열 testarr에 대입한다.
3. 정수형 배열 testarr의 원소중 첫 번째로 나오는 6을 9로 바꾼다.
4. 정수형 배열 testarr의 각 원소를 정수로 조합한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
class Solution {
public int maximum69Number (int num) {
String testString = Integer.toString(num);
int [] testarr = new int[testString.length()];
for (int i = 0; i < testString.length(); i++) {
testarr[i] = testString.charAt(i) - '0';
}
for (int i = 0; i < testarr.length ; i++) {
if (testarr[i] == 6) {
testarr[i] = 9;
break;
}
}
int result = 0;
for (int i = 0; i < testarr.length; i++) {
result += testarr[i] * Math.pow(10,testarr.length - i -1);
}
return result;
}
}
|
cs |
결과
Runtime : 0ms , beats 100.00% of java submissions
Memory usage : 36.1 MB , beats 39.97% of java submissions
메모리 사용량이 아쉽다.
더 좋은 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
class Solution {
public int maximum69Number (int num) {
int temp = num;
int add = 3;
int answer = num;
while (temp > 0) {
int currentDigit = temp % 10;
if (currentDigit == 6) {
answer = num + add;
}
add *= 10;
temp /= 10;
}
return answer;
}
}
|
cs |
Runtime : 0ms , beats 100.00% of java submissions
Memory Usage : 35.9 MB, beats 65.53 % of java submissions
결론
원본의 데이터를 변형하여 풀 수 있는지부터 확인해보자
'코딩 문제 > LeetCode' 카테고리의 다른 글
LeetCode 118 - Pascal's triangle ( C++ ) (0) | 2021.08.26 |
---|---|
LeetCode Q - Broken Calculator ( Java ) (0) | 2021.02.22 |
LeetCode Q - Container With Most Water (Java) (0) | 2021.02.19 |
Leetcode Q : Letter Case Permutation (Java) (0) | 2021.02.17 |
Leetcode Q : The K Weakest Rows in a Matrix (0) | 2021.02.16 |