목록분류 전체보기 (108)
모눈종이에 사각사각
🍎[백준 2470] 두 용액 문제링크 https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net ⚾ 코드 n = int(input()) array = list(map(int, input().split())) array.sort() left, right, start, end = 0, n-1, 0, n-1 while left abs(array[lef..
🍎[백준 20922] 겹치는 건 싫어 문제링크 https://www.acmicpc.net/problem/20922 20922번: 겹치는 건 싫어 홍대병에 걸린 도현이는 겹치는 것을 매우 싫어한다. 특히 수열에서 같은 원소가 여러 개 들어 있는 수열을 싫어한다. 도현이를 위해 같은 원소가 $K$개 이하로 들어 있는 최장 연속 부분 수열 www.acmicpc.net ⚾ 코드 n, k = map(int, input().split()) number = list(map(int, input().split())) need = {} for i in set(number): # 사용 가능한 수 만큼 저장 # 예) need = {1:2, 2:2, 3:3, 4:2} need[i] = k left, right = 0, 0 re..
프로젝트가 종료되고, 프리티어 기간이 다 되어가서 인스턴스를 삭제하려고 한다. 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..