import java.util.*;
public class Solution {
public int[] solution(int []arr) {
ArrayList<Integer> an = new ArrayList<Integer>();
for(int i = 0; i < arr.length-1; i++) {
if(arr[i] == arr[i+1]) {
continue;
}else {
an.add(arr[i]);
}
}
if(arr[arr.length-2] == arr[arr.length-1]) {
an.add(arr[arr.length-1]);
}else if(arr[arr.length-2] != arr[arr.length-1]) {
an.add(arr[arr.length-1]);
}
int[] answer = new int[an.size()];
for(int i = 0; i < an.size(); i++){
answer[i] = an.get(i);
}
return answer;
}
}
+3점
되게 유익한 글인데 대부분의 코테에선 토크나이저가 더 빠를거같음
import java.util.*;
class Solution {
public String solution(String s) {
ArrayList sibal = new ArrayList();
String answer = "";
String[] arr = s.split("");
for(int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
int a = 0;
for(int i = 0; i < arr.length; i++){
if(arr[i].equals(" ")){
a = 0;
}
else if(a % 2 == 0){
arr[i] = arr[i].toUpperCase();
a++;
}
else if(a % 2 == 1){
arr[i] = arr[i].toLowerCase();
a++;
}
answer += arr[i];
}
return answer;
}
}
===> 문자열을 대문자와 소문자로 바꿔주는 메소드
+11점
자꾸 틀리는 이유가 뭔가 했는데
테케에 애초에 대문자가 박혀서 오는 경우를 생각 안함
import java.util.ArrayList;
class Solution {
public int solution(int n) {
int answer = 0;
int a = n % 3;
int b = 1;
ArrayList<Integer> an = new ArrayList<Integer>();
ArrayList<Integer> rev_an = new ArrayList<Integer>();
while(n/(Math.pow(3, b)) > 1) {
b++;
}
if(n == (Math.pow(3, b))){
}else {
b -= 1;
}
for(int i = b; i > -1; i--) {
an.add((int)(n/Math.pow(3, i)));
n = (int)(n % Math.pow(3, i));
}
// System.out.println(an);
for(int i = an.size()-1; i > -1; i--) {
rev_an.add(an.get(i));
}
// System.out.println(rev_an);
for(int i = 0; i < rev_an.size(); i++) {
answer += (Math.pow(3, i) * rev_an.get(rev_an.size()-1-i));
}
return answer;
}
}
+3점
Math.Pow(a,b) ==> a의 b제곱
따로 import안해도 굴러감