프로그래머스(자바)
괄호 회전하기★★ →List의 rotate()를 이용, String → 리스트
나의 풀이 import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.Stack; import java.util.stream.Collectors; class Solution { public int solution(String s) { int cnt=0; List list = Arrays.stream(s.split("")).collect(Collectors.toList()); for (int i = 0; i < list.size(); i++) { Collections.rotate(list, -1); if(bracket_judge(list)){ cnt+=1; } } return cnt; } priv..
1차 캐시→ 익명 클래스★★, this참조변수, super() 생성자
익명클래스가 있는 경우-시간초과로 인한 실패 import java.util.*; public class Solution { public static int solution(int cacheSize, String[] cities) { // city가 cache에 없는 경우에는 전부다 cache miss이다. if (cacheSize == 0) { return cities.length * 5; } // cities의 요소를 저장하기 위한 cache공간으로 LinkedHashMap을 사용한다.(익명객체) Map cache = new LinkedHashMap(cacheSize, 0.75f, true) { protected boolean removeEldestEntry(Map.Entry eldest) { retu..
N개의 최소 공배수→ 연쇄 법칙 (겹치지X) + stack이용
나의 풀이 import java.util.*; class Solution { public static int gcd(int a, int b) { for (int i = Math.min(a, b); i > 0; i--) { if (a % i == 0 && b % i == 0) { return i; } } return 1; } public static int lcm(int a, int b) { return a * b / gcd(a, b); } public static int solution(int[] arr) { Stack stack = new Stack(); for (int element : arr) { if (stack.isEmpty()) { stack.push(element); } else { stac..
끝말잇기→contains()★+words[i].charAt(words[i].length()-1)★
나의풀이 import java.util.*; class Solution { public int[] solution(int n, String[] words) { int[] answer = new int[2]; int turn = 0; List wordList = new ArrayList(); wordList.add(words[0]); for (int idx = 1; idx < words.length; idx++) { if (words[idx - 1].charAt(words[idx - 1].length() - 1) != words[idx].charAt(0)) { turn = idx; break; } if (wordList.contains(words[idx])) { turn = idx; break; } wor..