분류 전체보기

    괄호 회전하기★★→ rotate() 사용O + rotate() 사용X 문자열 밀기

    나의 풀이 from collections import * def solution(s): cnt=0 stack=[] que=deque(s) for i in range(len(s)): #왼쪽으로 1칸씩 이동시킨다. que.rotate(-1) tmp=list(que) #bracket_judge함수의 리턴값이 True이면 올바른 괄호 문자열이라고 판단 if bracket_judge(tmp) == True: cnt+=1 return cnt def bracket_judge(tmp): answer =True stack=[] dict = { '(':')', '[':']', '{':'}'} for i in range(len(tmp)): if tmp[i] in ['(', '[', '{']: #이 코드 부분에서 tmp[i]..

    행렬의 곱셈★★★→3중 for문

    행렬의 곱셈★★★→3중 for문

    나의 풀이 → 다른 사람 풀이와 비슷한다. def solution(arr1, arr2): #두 행렬을 파라미터로 받아서, 곱셈을 한 결과값의 형태를 가지고, 모든 값이 0인 행렬을 만든다. #column와 column은 여기서 아무 역할도 안함 #예를 들어 arr1 2x3 이고 arr2가 3x2인 경우 배열을 2x2배열이 생겨야 한다. row=len(arr1) column=len(arr2[0]) answer =[[0 for col in range(column)] for row in range(row)] #정답 행렬(answer)을 2중 for문을 통해 순회하면서, 각 요소의 값을 채운다. #len(answer)을 len(arr1)으로 바꾸어도 무방 for i in range(len(answer)): #l..

    LinkedHashMap에 대하여

    LinkedHashMap 은 HashMap 과는 데이터가 들어온 순서를 기억하고 있습니다. LinkedHashMap은 기본적으로 삽입 순서대로 저장되기 때문에 가장 최근에 추가된 값이 가장 제일 마지막에 저장됩니다. 그리고 HashMap 과는 다르게 removeEldestEntry() 라는 메소드를 가지고 있습니다. LinkedHashMap 에 들어온지 가장 오래된 값을 eldest 로 알고 있습니다 이 메소드는 Map에 객체를 put 을 할때 불리게 되는데, 기본적으로 아래와 같이 정의되어 있습니다. protected boolean removeEldestEntry(Map.Entry eldest){ return false; } removeEldestEntry 메서드는 가장 오래된 값을 지우고, 그 자리에..

    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..