class Solution {
public String solution(String s) {
char[] chars = s.toCharArray();
StringBuilder stringBuilder = new StringBuilder();
if (chars.length % 2 == 0 ) {
int half = chars.length/2;
stringBuilder.append(chars[half-1]);
stringBuilder.append(chars[half]);
} else {
int half = chars.length/2+1;
stringBuilder.append(chars[half-1]);
}
return stringBuilder.toString();
}
}
String에 길이가 짝수인지 홀수인지 구해서 출력해주는 간단한 문제였다
return word.substring((word.length()-1) / 2, word.length()/2 + 1);
풀이
import java.util.*;
public class Solution {
public int[] solution(int []arr) {
int[] answer = {};
int temp = -1;
List<Integer> list = new ArrayList<>();
for (int i = 0; i < arr.length; i++) {
if (arr[i] != temp) {
list.add(arr[i]);
}
temp = arr[i];
}
return list.stream().mapToInt(i -> i).toArray();
}
}
풀이
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(int[] arr, int divisor) {
List<Integer> list = new ArrayList<>();
for (int i = 0; i <arr.length ; i++) {
if(arr[i] % divisor == 0) {
list.add(arr[i]);
}
}
if (list.isEmpty()) {
list.add(-1);
}
return list.stream().mapToInt(i ->i).sorted().toArray();
}
}
풀이
class Solution {
public long solution(int a, int b) {
long bigNum ;
long smallNum;
long answer = 0;
if(a==b) {
return a;
} else if(a > b) {
bigNum = a;
smallNum = b;
} else {
bigNum = b;
smallNum = a;
}
for (long i = smallNum; i <= bigNum ; i++) {
answer += i;
}
return answer;
}
}
큰 값을 구해서 for문을 통해 합을 해나가는 방식으로 풀었다
다른풀이를 보니 큰값을 구하는데 삼항연산자를 통해 간단히 구하는게 편해보였다
가장 효율적인 답안은 등차수열에 합을 통해서 구하는 것 같았다
public long solution(int a, int b) {
return sumAtoB(Math.min(a, b), Math.max(b, a));
}
private long sumAtoB(long a, long b) {
return (b - a + 1) * (a + b) / 2;