목록코딩테스트 풀이/프로그래머스 (11)
Simple&Natural
import java.util.*; class Solution { public int solution(String[][] clothes) { int answer = 1; HashMap hashMap = new HashMap(); for (String[] cloth : clothes) { hashMap.put(cloth[1], hashMap.getOrDefault(cloth[1], 0) + 1); } for (Integer count : hashMap.values()) { answer *= count+1; } answer -= 1; return answer; } }
배열의 전체 크기가 1000 이하로 작기 때문에 시간복잡도를 O(n^2)으로 잡아도 매우 빠르게 통과가 가능했다. import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.stream.Collectors; class Solution { public int solution(int[] citations) { int answer = 0; List list = Arrays.stream(citations).boxed().collect(Collectors.toList()); // 각 논문을 조회수 순으로 정렬 Collections.sort(list, Collections.reverseOrder()); /..
Java 풀이 한 가지 개선할 점이 있다면, 내 코드에서는 set을 만들어 0 으로만 이루어져 있는지 확인하는 방법을 썼는데 0 으로만 이루어진 수를 체크할 때 단순히 첫 번째 원소가 0 인지만 확인하면 된다. 또한 우선순위 큐를 사용하는 방법도 있는데 로직상으로는 comparator와 유사하다. 내 코드들을 보면 메소드 내 임시 변수 사용량이 많아 불필요한 메모리 사용이 많아 보이는 것 같다. 일단 제한된 시간 안에 테스트를 통과하는 것이 목표인 만큼 효율성이나 깔끔한 코드보다는 직관적으로 떠오르는 풀이를 통해 정확도를 우선적으로 고려하고 있고 나중에 코드리뷰를 하며 개선 예정이다. import java.util.*; class Solution { public String solution(int[] n..