전체 글

문제 원인yml파일을 git에서 추적하지 않기 위해 .gitignore에 적용했지만 계속 추적하는 원인이 git 캐시라고 한다.해결 방법git 캐시를 지워주면 된다.`git rm -r --cached .` 하면 모든 파일의 캐시가 지워지고 다시 모든 파일을 커밋할 수도 있지만`git rm -r --cached {yml파일 경로}` 이렇게하면 yml 파일만 캐시에서 삭제할 수 있고 모든 파일을 다시 커밋하지 않아도 된다. 1. `git rm -r --cached {yml파일 경로}`2. `git add {yml파일경로}`3. `git commit -m "Delete git cached"`위 과정을 거치면 yml파일을 git 추적에서 제외할 수 있다.
이코테에서 효율적인 화폐 구성 문제와 비슷해서 비슷한 풀이로 풀 수 있었다.첫번째 코드n = int(input())#설탕이 최대 5000이므로 data = [5001] * (n+1)bag = [3, 5]for i in bag: if i > n: continue data[i] = 1#배열 n에...3키로,, 5키로for k in bag: for i in range(k, n+1): if data[i-k] != 5001: #가방 단위로 배달 가능하면... data[i] = min(data[i], data[i-k]+1)if data[n] != 5001: print(data[n])else: print(-1) 이전에 이 문제를 푼 코드가 있어서 확인해 봤더니 이전에 푼 코드가 더 빠르고..
· 알고리즘
만약 아래와 같이 주어졌다고 하면BFS탐색하면서 주변에 1로 된 노드를 탐색하면서 이전 노드의 최소 방문 횟수에 + 1을 해주면서 방문처리를  해주면 아래와 같다. 결국 마지막 노드에 있는 수를 출력해주면 동빈이가 방문하는 최소 노드 개수를 구할 수 있다.작성 코드from collections import deque#풀이시간: 28m 40s# 소스코드 날라가서 두번 풂..#이전 노드를 중심으로 상하좌우 bfs탐색 -> 이전 노드에는 해당 노드를 방문하기 위한 최소 노드 개수가 적혀져 있으므로 상하좌우 탐색하면서 이전 노드에 적힌 수 + 1을 하면 다음 노드로 가기 위한 최소 노드 개수를 구할 수 있음n, m = map(int, input().split())map = list(list(map(int, in..
이 문제는 이코테 책에서 DFS/BFS 파트의 문제인데 조합으로도 풀이가 가능해서 `itertools` 라이브러리의 `permutations`클래스를 사용해서 풀었다. 하지만 Python3로 제출했지만 시간초과 발생from itertools import permutationsn = int(input())lst = list(map(int,input().split()))op_cnt = list(map(int,input().split()))op = ['+', '-', '*', '%']op_idx = []for cnt, op_symbol in zip(op_cnt, op): for i in range(cnt): op_idx.append(op_symbol)op = list(permutations(op_idx..
· 알고리즘
리스트를 사용한 큐 보통 파이썬에서는 deque를 사용해서 큐를 구현한다리스트 내장 함수를 사용해서 큐 기능을 구현할 수도 있다.q = []q.append(1)q.pop(0)`append()`: 리스트 뒤쪽에 요소 넣기`pop(0)`: 리스트 맨 앞 요소 꺼내기 하지만 append나 pop은 일반적으로 '가장 뒤쪽의 원소'를 기준으로 수행한다.따라서 앞쪽에 있는 원소를 처리할 때에는 리스트에 포함된 데이터의 개수에 따라 많은 시간이 소요될 수도 있다는 점을 기억하자.deque를 사용한 큐 데이터의 시작 부분이나 끝 부분에 데이터를 삽입하거나 삭제할 때 매우 효과적으로 사용될 수 있다.시간복잡도가 O(1)이다.from collections import dequedata = deque([2,3,4])data..
이코테 책을 기반으로 작성된 글입니다. 카카오.... 나한텐 너무 먼 카카오... 코테 문제부터 심상치 않아... 도저히 모르겠어서 그냥 바로 해설보고 풀었다.  해설에서 알아두면 좋은 코드만 작성해보기로 했다 2차원 리스트 90도 회전#열쇠를 90도 회전하는 경우def rotate_a_matrix_by_90_degree(key): n = len(key) result = [[0]*n for _ in range(n)] for i in range(n): for k in range(n): result[k][n-i-1] = key[i][k] return result 3X3인 열쇠임을 가정해보자.key[0][0] -> result[0][2]key[0][1] -> result[1][2]key[..
본 글은 인프런 "스프링부트 시큐리티 & JWT 강의" 최주호 강사님의 강의를 바탕으로 작성한 글입니다.스프링 시큐리티란? 공식문서에는 아래와 같이 설명되어 있다.Spring Security는 강력하고 사용자 정의가 가능한 인증 및 엑세스 제어 프레임워크입니다. 이는 Spring 기반 애플리케이션 보안을 위한 사실상의 표준입니다.Spring Security는 Java 애플리케이션에 인증과 권한 부여를 모두 제공하는 데 중점은 둔 프레임워크입니다. 따라서 java 애플리케이션으로 인증/권한 부여를 하기 위해서 Spring Security를 많이 사용한다.1. 환경설정 강의에서는 mushtache라는 템플릿 엔진을 사용했다. 의존성은 아래와 같이 추가해 주었다LombokSpring Boot DevToolsS..
이전 프로젝트에서는 AccessToken, RefreshToken을 사용해 로그인을 구현했는데그 당시 토큰에 대한 개념과 Spring Security 필터에 대한 지식이 제대로 잡힌 상태가 아니였기에 (지금은..?)졸업 프로젝트에서 구현한 AccessToken을 구현하면서 내용을 정리해 보고자 한다.settingGradle 버전: 3.x.xjava: 17 패키지 구조 노란색 하이라이트인 클래스만 사용해서 JWT필터와 AcessToken 발급 구현토큰 발급이 주인 내용이므로 memberRepository나 login controller에 대한 내용은 간단하게 설명 Spring Security란? jwt를 구현하기 위해서는 먼저 Sprint Security 필터에 대한 이해가 어느정도 필요하다.해당 내용은 ..
글 헤더 커스텀하기 커스텀 하기 전 글 헤더는 본문 글에 사진이 있으면 블러처리 된 사진이 헤더에 생겼었다. 내가 원하는건 오른쪽 사진과 같이 커스텀하고 싶었다  hELLO 스킨 커스텀 시작 먼저 스킨 편집에 들어가서 html 편집에 들어간다.  기존 태크를 삭제하거나 주석처리하고 아래 코드로 바꿔준다. 기존 태그 · 수정삭제  커스텀한 태그와 CSSdiv.header-thumbnail { width: 130px; height: 130px; border-radius: 999px; overflow: hidden; box-shadow: 0px 0px 5px #444}img.header-thumbnail {..
hapBday
개발자로 성장하기 위한 기록들