코딩테스트/Programmers 37

[Programmers] 이상한 문자 만들기

문자 사이의 공백을 어떻게 처리해야 하나... * 내 풀이 -> 틀림 import java.util.*; class Solution { public String solution(String s) { StringBuilder sb = new StringBuilder(); String[] arr = s.trim().split(" "); for(String str : arr) { for(int i=0; i 공백 유지 String str = "수박:사과:배:메론:::"; // limit = 0 String[] arr = str.split(":");// {"수박", "사과", "배", "메론"} // limit > 0 String[] arr = str.split(":", 3);// {"수박", "사과", "배:메..

[Programmers] 3진법 뒤집기

내 풀이 StringBuilder로 reverse를 할까 했는데 StringBuilder Integer 왔다갔다 하면 속도가 느려질까봐 어케든 integer로만 풀려고 했음 import java.util.*; class Solution { public int solution(int n) { List list = new ArrayList(); int answer = 0; int j = 1; while(n > 0) { list.add(n%3); // {0, 0, 2, 1} n /= 3; } for(int i = list.size() - 1; i >= 0; i--) { answer += list.get(i) * j; j *= 3; } return answer; } } 다른 사람 풀이 깔끔하고 좋은데 속도가 느..

[Programmers] 같은 숫자는 싫어 - 여러 방법

뭔가 큐를 사용해야되는 건줄 알았는데 import java.util.*; public class Solution { public int[] solution(int []arr) { List list = new ArrayList(); Queue q = new LinkedList(); for(int n : arr) { q.offer(n); } int temp = q.poll(); list.add(temp); while(!q.isEmpty()) { int now = q.poll(); if (now != temp) { list.add(now); } temp = now; } return list.stream().mapToInt(i->i).toArray(); } } 일단 실패 스택 사용 import java.util..

[Programmers] 제일 작은 수 제거하기

굉장히 쉬워보였는데 낑낑대다가 막판에 결국 참고했다 ; 인덱스까지 해놓고선 마지막 한줄 answer[index++] = arr[i]를 왜 생각을 못해냈지?? 대가리가 왤케 안돌아가는겨 import java.util.*; class Solution { public int[] solution(int[] arr) { int[] answer = new int[arr.length - 1]; int min = arr[0]; int index = 0; if (arr.length == 1) return new int[]{-1}; for(int i=0; i 배열의 각 요소를 개별적으로 처리 2. IntStream(arr) - 주어진 인수들을 가지고 int 형식의 스트림 생성 - int[] 배열 -> 배열 자체가 하나의 ..