풀이
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 1; i <= n ; i++) {
if (n % i == 0) {
answer += i;
}
}
return answer;
}
}
풀이
class Solution {
public String solution(String s) {
String lowerCase = s.toLowerCase();
String upperCase = s.toUpperCase();
StringBuilder stringBuilder = new StringBuilder();
int count = 0;
for (int i = 0; i < s.length(); i++) {
if(count%2 ==0) {
stringBuilder.append(upperCase.charAt(i));
} else {
stringBuilder.append(lowerCase.charAt(i));
}
if (s.charAt(i)== ' ') {
count =0;
} else {
count ++;
}
}
return stringBuilder.toString();
}
}
풀이
public class Solution {
public int solution(int n) {
Integer integer = n;
String str = String.valueOf(n);
int answer = 0;
for (int i = 0; i < str.length(); i++) {
answer += Integer.parseInt(String.valueOf(str.charAt(i)));
}
return answer;
}
}
다른 사람풀이
풀이
class Solution {
public int[] solution(long n) {
String str = String.valueOf(n);
int[] answer = new int[str.length()];
long divisor =10;
for (int i = 0; i <str.length() ; i++) {
answer[i] = (int)(n % divisor);
n = n / divisor;
}
return answer;
}
}
다른사람 풀이
풀이
import java.util.Arrays;
class Solution {
public long solution(long n) {
char[] chars = String.valueOf(n).toCharArray();
Arrays.sort(chars);
StringBuilder stringBuilder = new StringBuilder(String.valueOf(chars));
return Long.parseLong(stringBuilder.reverse().toString());
}
}
long을 chars로 만들고 Arays.sort를 역순으로 돌리고 싶었는데 그러면 Characters[]가 되야되서 StringBuilder로 reverse하는 방식을 선택하였다
다른사람 풀이
class Solution {
public long solution(long n) {
return Long.parseLong(String.valueOf(n).chars().mapToObj(ch -> (char) ch)
.sorted(Comparator.reverseOrder())
.collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append)
.toString());
}
}
char()를 통해 Stream으로 만들어 한번에 처리가 가능했다
풀이
class Solution {
public long solution(long n) {
long answer = -1;
int i = 1;
while (n/i >= i) {
if(n % i ==0 && n/i == i){
answer = i;
}
i++;
}
return answer == -1 ? -1 : (long)Math.pow(answer+1,2);
}
}
while문을 통해 n/i가 i보다 크거나 같을대까지만 범위를 정해서 n/i ==i일때 i를 답이 되도록 하였다
제곱을 깔끔하게 하기위해 Math.pow함수를 사용해보았다
다른사람풀이
class Solution {
public long solution(long n) {
if (Math.pow((int)Math.sqrt(n), 2) == n) {
return (long) Math.pow(Math.sqrt(n) + 1, 2);
}
return -1;
}
}
Math.pow를 활용할거면 제곱근인 Math.sqrt함수도 활용해보았어야됫는데 생각을 못했다
sqrt의 값은 double로 나오기 때문에 다시 pow를 한경우 소숫점자리에서 달라질수 있다는걸 이해해야 이렇게 풀수있는것 같다
풀이
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int[] arr) {
if (arr.length == 1) {
return new int[]{-1};
}
int minVal = Integer.MAX_VALUE;
int index = 0;
for (int i = 0; i < arr.length ; i++) {
if(arr[i] < minVal) {
minVal = arr[i];
index = i;
}
}
List<Integer> list = new ArrayList<>();
for (int i = 0; i < arr.length ; i++) {
if (i == index) {
continue;
}
list.add(arr[i]);
}
return list.stream().mapToInt(i -> i).toArray();
}
}
다른 사람 풀이