전체 글 233

git cache 삭제

캐시 삭제.gitignore에 폴더나 파일을 추가했지만 반영이 안 되는 경우가 있다.이럴 때 cache를 삭제해 문제를 해결할 수 있다.아래와 같은 명령어로 캐시 삭제를 수행한다.git rm -r --cached .git add .git commit -m "캐시 삭제"  또는 다음과 같이 한 파일만 cache를 삭제한다.git rm --cached FILENAME  공식문서다음과 같이 공식문서를 보면 명령어를 확인할 수 있다. 해석은 다음과 같다더보기gitignore 파일의 목적은 Git에서 추적하지 않는 특정 파일이 추적되지 않은 상태로 유지되도록 하는 것이다현재 추적 중인 파일의 추적을 중지하려면 git rm --cached를 사용하여 인덱스에서 파일을 제거한다그런 다음 파일 이름을 .gitignor..

git 2024.05.19

자동 구성(Auto Configuration)

해당 게시물은 인프런 - "스프링 부트 - 핵심 원리와 활용" 강의를 참고하여 작성한 글입니다유료강의이므로 자세한 내용은 없고, 간단한 설명 위주로 정리했습니다강의 링크스프링 부트의 자동 구성스프링 부트는 자동 구성(Auto Configuration) 기능을 통해 일반적으로 자주 사용하는 많은 빈들을 자동으로 등록해 준다spring-boot-autoconfigure라는 프로젝트 안에서 수많은 자동 구성을 제공한다JDBCTemplate을 설정하고 빈으로 등록하는 자동 구성은 다음과 같다@AutoConfiguration( after = {DataSourceAutoConfiguration.class})@ConditionalOnClass({DataSource.class, JdbcTemplate.class}..

스프링 부트 2024.05.19

프로그래머스 - 게임 맵 최단거리

문제https://school.programmers.co.kr/learn/courses/30/lessons/1844# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이가중치가 없는 그래프이므로 최단거리를 찾기 위해 BFS 알고리즘을 사용한다그래프의 최대 크기가 100x100이므로 인접행렬을 통해 그래프를 만든다  코드python123456789101112131415161718192021222324252627def bfs(row, col, maps):    q = [[row, col]]        dist = [[-1] * len(maps[0]) for ..

프로그래머스 2024.04.15

프로그래머스 - 폰켓몬

문제https://school.programmers.co.kr/learn/courses/30/lessons/1845?language=python3 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이nums 배열의 폰켓몬의 종류가 모두 다른 경우는 문제의 최대값으로 N / 2 만큼 뽑을 수 있다.따라서 중복이 있을 경우는 N / 2이나 이보다 작은 값이 정답이 된다.종류를 고를 때는 중복을 제거한 nums에서 고른다. 중복을 제거한 nums의 길이가 N / 2 보다 같거나 크다면 N / 2만큼 중복되지 않은 폰켓몬을 뽑을 수 있으므로 N / 2가 정답이다. ..

프로그래머스 - 양과 늑대

문제https://school.programmers.co.kr/learn/courses/30/lessons/92343 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이루트 노드부터 인접 노드를 통해 갈 수 있는 모든 노드를 탐색한다.여기선 BFS를 사용한다. 인접 노드를 이동하려면 양과 늑대의 수를 비교해야 한다.아래 그림에서 0 -> 1로 바로 갈 순 없다.0->2 방향으로 탐색을 진행한 후 양의 수가 더 많으면 1을 탐색할 수 있는데, 그 전까지 1번은 방문해도 3번과 4번 노드에 대해 BFS 작업을 진행할 수 없다.트리의 노드를 구성할 때 아래와 같..

프로그래머스 - 미로 탈출

문제https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이그래프에서 최소 시간을 찾아야 하므로 BFS를 사용한다.문제 조건 중 L 칸을 꼭 지나가야 하므로 BFS를 2번 진행한다.S - > L, L -> E 이 2번 중에 갈 수 없는 경로가 존재하면 -1을 리턴한다.L 칸에서 BFS를 새로 시작해야 하므로 큐, visit 배열등을 다시 초기화한다.다음 방문 노드를 큐에 집어넣을 때 BFS 진행 횟수(step)를 함께 저장하면 같은 level의 노..

프로그래머스 - 다단계 칫솔 판매

문제https://school.programmers.co.kr/learn/courses/30/lessons/77486 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이딕셔너리로 판매자의 추천자를 저장한다. 이를 통해 추천자를 타고 올라가서 root까지 찾을 수 있다.계산 결과를 저장할 때도 딕셔너리를 사용하면 편하게 저장할 수 있다.딕셔너리에 저장한 계산 결과들은 valuse() 함수를 이용해 구하면 된다.  코드python123456789101112131415def solution(enroll, referral, seller, amount):    an..

프로그래머스 - [3차] 압축

문제https://school.programmers.co.kr/learn/courses/30/lessons/17684 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이길이가 가장 긴 문자열을 찾기 위해 인덱스 두 개를 사용한다.문자열의 시작 인덱스 start_idx와 문자열의 끝 인덱스 end_idx를 이용하고, end_idx의 값을 증가하면서 가장 긴 문자열을 찾는다.msg[start_idx : end_idx]에 해당하는 문자열이 사전에서 못 찾을때까지 end_idx를 증가시키면 가장 긴 문자열을 찾을 수 있다.그러면 사전에서 못 찾은 문자열이 나왔을 ..

프로그래머스 - 의상

문제https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이옷의 갯수를 종류별로 합산한다.옷의 각 종류별로 옷을 입을 수 있는 경우의 수를 구한다.경우의 수는 다음과 같다.종류별로 안에 있는 1개만 정해서 입는다. 이는 옷의 종류 갯수와 같다.또는 카테고리 안에 있는 옷을 아예 입지 않는다.따라서 특정 종류 안에 있는 옷의 수가 n 이라면 경우의 수는 n + 1이다. 여러 종류에서 나오는 경우의 수를 곱하면 모든 종류에 대해서 경우의 수가 나온다.마..

프로그래머스 - 메뉴 리뉴얼

문제https://school.programmers.co.kr/learn/courses/30/lessons/72411 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이orders에 있는 order마다 2개, 3개, 4개...씩 course 리스트에 있는 갯수만큼 조합을 만들고 course 갯수에 맞는 특정 조합의 갯수가 많은걸 찾아야 한다. orders의 order 마다 course 갯수만큼 조합을 찾기 위해 combinations 함수를 사용한다. 특정 조합이 만들어지는 횟수를 구하기 위해 Counter 객체를 이용한다.Counter를 통해 다음과 같이..