문제풀이 2021 03 08
2021.03.08 연습
- 사용언어 : java
class Solution {
public int maximum69Number (int num) {
String s = String.valueOf(num);
int firstSix = s.indexOf('6');
if (firstSix != -1) {
StringBuilder sb = new StringBuilder(s);
sb.setCharAt(firstSix, '9');
s = sb.toString();
}
return Integer.parseInt(s);
}
}
Runtime: 1 ms, faster than 58.32% of Java online submissions for Maximum 69 Number. Memory Usage: 35.5 MB, less than 97.03% of Java online submissions for Maximum 69 Number.
- 다른 코드 참고
class Solution {
public int maximum69Number (int num) {
char[] nums = Integer.toString(num).toCharArray();
for(int i=0;i<nums.length; i++){
if(nums[i]=='6'){
nums[i]='9';
return Integer.valueOf(String.valueOf(nums));
}
}
return num;
}
}
class Solution {
public int maximum69Number (int num) {
// Convert num to string. Replace the first instance of 6 to 9. Then convert altered (String)num to (Integer)num
// This only works because we are dealing with positive numbers.
// You would never want to change a 9 to 6 because that would lower our number.
return Integer.valueOf(Integer.toString(num).replaceFirst("6","9"));
}
}
class Solution {
public int maximum69Number (int num) {
StringBuilder sb = new StringBuilder();
sb.append(num);
for(int i = 0 ; i < sb.length() ; i++){
if(sb.charAt(i) != '9'){
sb.setCharAt(i,'9');
break;
}
}
return Integer.parseInt(sb.toString());
}
}
class Solution {
public int[] sortArrayByParity(int[] A) {
List<Integer> list = new ArrayList<>();
for (int i : A) {
if (i%2 == 0) {list.add(0, i);}
else {list.add(i);}
}
int[] result = new int[list.size()];
int c = 0;
for (Integer a : list) {
result[c++] = a;
}
return result;
}
}
Runtime: 4 ms, faster than 8.19% of Java online submissions for Sort Array By Parity. Memory Usage: 39.9 MB, less than 56.90% of Java online submissions for Sort Array By Parity.
- 다른 코드 참고
class Solution {
public int[] sortArrayByParity(int[] A) {
ArrayList<Integer> aa = new ArrayList<>();
for(int i =0; i< A.length; i++){
if(A[i] %2 == 0){
aa.add(A[i]);
}
}
for(int i =0; i< A.length; i++){
if(A[i]%2 != 0){
aa.add(A[i]);
}
}
for(int j = 0; j<A.length; j++){
A[j] = aa.get(j);
}
return A;
}
}
Arrays.asList()
로 만든 List에는 새로운 원소를 추가하거나 삭제할 수 없다.
새로운 List를 메모리 공간에 저장하는 것이 아니고 이미 존재하는 Fixed sized 배열의 주소를 가져와 그것을 list로 처리한다는 개념이다. 새로운 배열 객체를 만드는 것이 아니라 원본 배열의 주소값을 가져오게 된다. (asList()
를 사용한 객체 수정시 원본 배열도 함께 바뀌게 될 것이다.)