원래 구현한 내 코드 시간 복잡도 -> O(3N)import java.util.*;class Solution { public String solution(String[] participant, String[] completion) { Map map = new HashMap(); for (String c : completion){ map.put(c, map.getOrDefault(c, 0) + 1); } for(int i = 0; i entry : map.entrySet()){ if(entry.getValue() != 0){ return entry.getKey(); ..
import java.util.*;class Solution { public int solution(int[] nums) { Set temp = new HashSet(); for(int num : nums){ temp.add(num); } if(temp.size() /* 다른 사람의 풀이를 보니 Integer.min(temp.size(), nums.length)도 있어서 학습했다. 그것을 적용하여 Collectors.collectingAndThen(Collectors.toSet(), phokemon -> Integer.min(phokemon.size(), nums.length / 2)) 방식으로 푼 것이 특이했다. */
class Solution { public String solution(String my_string, int num1, int num2) { StringBuilder sb = new StringBuilder(my_string); char temp = my_string.charAt(num2); sb.setCharAt(num2, sb.charAt(num1)); sb.setCharAt(num1, temp); return sb.toString(); }}/* StringBuilder에서도 charAt 사용한다. 또한 문자를 변경할 때 setCharAt를 사용한다. 그리고 StringBuilder를 썼을 때 toString으로 변환하는 ..
class Solution { public String solution(String my_string, int n) { StringBuilder new_string = new StringBuilder(); for(int i = 0; i String은 불변이기 때문에, 매번 새로운 객체를 생성하게 된다. 따라서 루프 내에서 문자열을 다룰 때 StringBuilder를 쓰는 것이 성능상 이점이 있다. StringBuilder는 가변 버퍼를 사용하여 문자열 추가 작업이 효율적이다.자바 11부터는 repeat() 사용 가능 이전 버전에서는 중첩반복문 사용하면 된다.StringBuilder는 char를 바로 추가할 수 있다. (내부적으로 변환함) 하지만 repeat를 호출하려면..