문자열을 정수로 바꾸기
class Solution {
public int solution(String s) {
int answer = Integer.parseInt(s);
return answer;
}
}
정수 제곱근 판별
class Solution {
public long solution(long n) {
long answer = 0;
for (long i = 1; i < 50000000; i++){
if (n / i == i && n % i == 0){
return (i+1) * (i+1);
}
}
return -1;
}
}
정수 내림차순으로 배치하기
- 앞으로 문제를 풀 때는 import java.util.*; 하기!
import java.util.ArrayList;
class Solution {
public Long solution(long n) {
long answer = 0;
ArrayList<Long> list = new ArrayList<Long>();
while(n > 0){
list.add(n % 10);
n /= 10;
}
for(int i = 0; i < list.size(); i++){
for(int j = i + 1; j < list.size(); j++){
if(list.get(i) < list.get(j)){
long temp = list.get(j);
list.set(j, list.get(i));
list.set(i, temp);
}
}
}
int idx = 1;
for (int i = list.size() - 1; i >= 0; i--){
answer = answer + (list.get(i) * idx);
idx = idx * 10;
}
return answer;
}
}
다른 사람의 풀이 1
- string을 순회하는 방법 : String s = str.substring(i, i+1);
class Solution {
public long solution(long n) {
String answer = "";
String str = Long.toString(n);
int[] arr = new int[str.length()];
//long타입의 숫자를 Int배열로 올긴다.
for(int i = 0; i < str.length(); i++) {
String s = str.substring(i, i+1);
arr[i] = Integer.parseInt(s);
}
//내림차순 정렬
for(int j = 0; j < str.length()-1; j++){
for(int i = 0; i < str.length()-1; i++) {
if (arr[i] < arr[i+1]) {
int tmp = arr[i+1];
arr[i+1] = arr[i];
arr[i] = tmp;
}
}
}
for(int i = 0; i < str.length(); i++){
answer += arr[i];
}
return Long.parseLong(answer);
}
}
다른 사람 풀이 2
import java.util.*;
class Solution {
public long solution(long n) {
String[] list = String.valueOf(n).split("");
Arrays.sort(list);
StringBuilder sb = new StringBuilder();
for (String aList : list) sb.append(aList);
return Long.parseLong(sb.reverse().toString());
}
}
'Algorithm' 카테고리의 다른 글
11286 절댓값 힙 / 우선순위 큐 (0) | 2025.01.08 |
---|---|
자바 알고리즘 연습(5) (0) | 2025.01.07 |
1927 최소 힙 / 우선순위 큐 (0) | 2025.01.06 |
11279 최대 힙 / 우선순위 큐 (0) | 2025.01.04 |
자바 알고리즘 연습(3) (0) | 2025.01.03 |