목록CodingTest (39)
모눈종이에 사각사각

🍎[백준 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..

🍎 [백준 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..

🍎[프로그래머스] 전화번호 목록 문제링크 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..

🍎 [백준 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..

🍎 [백준 11265] 끝나지 않는 파티 문제링크 https://www.acmicpc.net/problem/11265 11265번: 끝나지 않는 파티 입력의 첫 번째 줄에는 파티장의 크기 N(5 ≤ N ≤ 500)과 서비스를 요청한 손님의 수 M(1 ≤ M ≤ 10,000) 이 주어진다. 각각의 파티장은 1번부터 N번까지 번호가 붙여져 있다. 다음에는 N개의 줄에 걸 www.acmicpc.net ⚾ 코드 # 11265 끝나지 않는 파티 import sys input = sys.stdin.readline N, M = map(int, input().split()) # N: 파티장의 크기, M: 서비스를 요청한 손님의 수 graph = [list(map(int, input().split())) for _ in..

🍎 [백준 18405] 경쟁적 전염 문제링크 https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net ⚾ 코드 from collections import deque N, K = map(int, input().split()) graph = [[0]*(N+1)] # 1부터 시작하게 하기 위해서 virus_location = [] for i in range(1, N+1): graph.append([0]+list(map(int, ..