목록전체 글 (106)
모눈종이에 사각사각
프로젝트가 종료되고, 프리티어 기간이 다 되어가서 인스턴스를 삭제하려고 한다. 1. 인스턴스 중지 먼저 인스턴스를 중지시킨다. "인스턴스 중지"를 누르고 일정 시간이 지면 중지됨이라고 뜬다. 안전하게 중지 되었다. 이 상태에서는 인스턴스를 다시 복구시킬 수 있다. 2. 인스턴스 종료 인스턴스 종료를 눌러 종료한다. 그러면 위와 같은 화면이 뜨는데 종료 버튼을 눌러준다. 나의 경우에는 탄력적 IP도 연결되어 있었기 때문에 탄력적 IP도 없애주어야 한다. 3. 탄력적 IP 삭제 탄력적 IP에 가서 삭제할 IP를 선택하고 탄력적 IP주소 릴리스를 눌러준다. 마지막으로 릴리스를 누르면 삭제가 완료된다. + 보안 그룹 삭제 보안 그룹도 삭제해준다. 1. 삭제할 보안 그룹을 선택한다. 작업>보안 그룹삭제를 누른다...
🍎 [백준 15686] 치킨 배달 문제 링크 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net ⚾ 코드 from itertools import combinations n, m = map(int, input().split()) grid = [list(map(int, input().split())) for _ in range(n)] chickens = [] homes = [] for i in range(n): for j in r..
프로그래머스 문제를 풀다가 lower bound를 이용해서 풀면 좋은 문제가 있었다. 따라서 lower bound가 무엇인지 공부하면서 내용을 정리해보고자 한다. lower bound와 upper bound는 이진 탐색 트리를 포스팅한 글에서 적은 bisect 모듈과 같은 기능을 한다. lower bound는 bisect_left, upper bound는 bisect_right라고 보면된다. 🍀 Lower Bound - target 값이 들어갈 수 있는 첫 번 째 인덱스를 반환한다. 구현 코드는 다음과 같다. def lower_bound(nums, target): left, right = 0, len(nums) while left < right: mid = (left+right) // 2 if nums[..
🍎[프로그래머스] 전화번호 목록 문제링크 https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr ⚾ 코드 def solution(phone_book): answer = True phone_book.sort() # 정렬을 한다. 그러면 접두어가 같은 순서대로 정렬이 될 것이다. for i in range(len(phone_book)-1): if phone_book[i] == phone_book[i+1][:len(p..
🍎 [프로그래머스] 문자열 압축 문제링크 https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr ⚾ 코드 def solution(s): result = 1000 # 최종 반환 될 문자열의 길이 if len(s) == 1: # 만약 문자열의 길이가 1이라면 return 1 # 1 반환 for i in range(1, len(s)): # i = 자르는 단위 수 answer = "" count = 1 for j i..
🍎 [백준 1719] 택배 문제링크 https://www.acmicpc.net/problem/1719 1719번: 택배 명우기업은 2008년부터 택배 사업을 새로이 시작하기로 하였다. 우선 택배 화물을 모아서 처리하는 집하장을 몇 개 마련했지만, 택배 화물이 각 집하장들 사이를 오갈 때 어떤 경로를 거쳐야 하 www.acmicpc.net ⚾ 코드 - 다익스트라 import sys import heapq input = sys.stdin.readline INF = int(1e9) N, M = map(int, input().split()) result = [[0]*(N+1) for _ in range(N+1)] # 결과 테이블 graph = [[] for _ in range(N+1)] for _ in rang..
🍎 [백준 9466] 텀 프로젝트 문제 링크 https://www.acmicpc.net/problem/9466 9466번: 텀 프로젝트 이번 가을학기에 '문제 해결' 강의를 신청한 학생들은 텀 프로젝트를 수행해야 한다. 프로젝트 팀원 수에는 제한이 없다. 심지어 모든 학생들이 동일한 팀의 팀원인 경우와 같이 한 팀만 있을 www.acmicpc.net ⚾ 코드 import sys sys.setrecursionlimit(1000001) # 재귀 깊이 설정 input = sys.stdin.readline def find_group(start): global group visited[start] = True cycle.append(start) # cycle 리스트에 삽입 if visited[student[sta..
프로젝트 진행 중에 가게의 다음 영업시간을 알아내기 위해서 프로시저를 만들었었다. 이를 JDBC 템플릿에서 어떻게 호출하는 지 몰라 공부하면서 구현했기 때문에 복습 겸 적어보려고 한다. 이번 포스팅에서는 MySQL에서 작성한 프로시저를 SimpleJdbcCall을 사용하여 어떻게 호출하지 알아 볼 것이다. SimpleJdbcCall을 이용하면 프로시저 호출을 할 수 있다. 1. 호출할 프로시저 지정 먼저 호출할프로시저를 지정한다. 내가 작성한 프로시저의 이름은 'business_hours_loop' 이다. // 프로시저 지정 SimpleJdbcCall simpleJdbcCall = new SimpleJdbcCall(jdbcTemplate) .withProcedureName("business_hours_l..
이번 포스팅에서는 0-1 BFS 알고리즘에 대해 알아보고자 한다. 백준 13549 숨바꼭질3 문제를 풀 때 0-1 BFS 알고리즘이 있다는 사실을 알게 되었다. 0-1 BFS는 가중치가 0과 1로만 주어진 그래프에서 최단 경로를 찾고자 할 때 BFS를 응용하여 푸는 것이다. 가중치가 0과 1만 있을 때는 최단거리를 찾을 경우에 다익스트라가 가장 좋은 선택이 아니다. 다익스트라 알고리즘의 시간 복잡도는 \(O(ElogE)\) 혹은 \(O(ElogV)\)인 반면, 0-1 BFS를 사용하면 \(O(V+E)\)의 상수시간으로 문제를 해결할 수 있다. 🍀 0-1 BFS의 동작 과정 deque를 활용해서 진행한다. 1. deque에서 popleft()로 현재 노드를 꺼낸다. 2. 연결된 인접 노드를 살펴본다. 3...
🍎 [백준 13549] 숨바꼭질3 문제링크 https://www.acmicpc.net/problem/13549 13549번: 숨바꼭질 3 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net ⚾ 코드 from collections import deque N, K = map(int, input().split()) # N: 언니, K:동생 INF = int(1e9) second = [INF]*(max(N, K)*2) # 언니와 동생중 큰 값의 두 배 길이의 second 리스트 생성 def check_range(n..