Algorithm

·Algorithm/연습
https://www.acmicpc.net/problem/21611 21611번: 마법사 상어와 블리자드 마법사 상어는 파이어볼, 토네이도, 파이어스톰, 물복사버그, 비바라기 마법을 할 수 있다. 오늘 새로 배운 마법은 블리자드이고, 크기가 N×N인 격자에서 연습하려고 한다. N은 항상 홀수이고, ( www.acmicpc.net 다른 사람 풀이를 참고하지 않고 내 힘으로 풀어서 굉장히 뿌듯했던 문제 .. ^^ 무려 골1 이였다!! ㅎㅎㅎ 이거 풀 때만해도 삼성코테 뿌시기 가능!! 하면서 자신감이 뿜뿜했는데 .. 항상 조져지는 것은 나였지 ..ㅎ 열심히 연습해서 다음 기회에는 꼭 문제를 풀 수 있었으면!! 일단 이 문제는 한 문제 지만 약 5문제가 합쳐져 있는 느낌이 들었다. 사고가 어렵게 필요하진 않지만..
·Algorithm/연습
상어 초등학교 1차: No 2차: No 3차: No 날짜: 2022년 4월 28일 21608번: 상어 초등학교 문제 해석 학생의 순서, 각 학생이 좋아하는 학생 4명 비어있는 칸 중 좋아하는 학생이 인접한 칸에 가장 많은 칸으로 자리를 정함 1을 만족하는 칸이 여러 개이면, 인접한 칸 중에서 비어있는 칸이 가장 많은 칸으로 자리 정함 2를 만족하는 칸도 여러개인 경우, 행의 번호가 가장 작은 칸으로, 그러한 칸도 여러개이면 열의 번호가 가장 작은 칸 문제 포인트 학생과 학생이 좋아하는 학생들을 딕셔너리로 구분해준다. 모든 경우의 수를 다 쪼갠다. 코드 # 21608 - 상어 초등학교 from collections import deque import sys n = int(input()) student = ..
·Algorithm/연습
치킨 배달 1차: No 2차: No 3차: No 날짜: 2022년 4월 23일 코멘트: 혼자 힘으로 생각하며 풀 수 있을 것 태그: 중 15686번: 치킨 배달 문제 해석 n*n 도시 → 빈칸 0, 치킨집 2, 집 1 치킨 거리 = 집과 가장 가까운 치킨집 사이의 거리 치킨 거리는 집을 기준으로 정해짐, 각각의 집은 치킨 거리를 가지고 있음 도시의 치킨 거리는 모든 집의 치킨 거리의 합 (r1,c1) (r2,c2) ⇒ 치킨 거리 : |r1 - r2| + |c1 - c2| 치킨 m으로 조합을 추출하고, 최소 거리를 찾는다. 코드 # 15686 :: 치킨 배달 from itertools import combinations n, m = map(int, input().split()) array = [list(m..
·Algorithm/연습
인구 이동 1차: No 2차: No 3차: No 날짜: 2022년 4월 24일 코멘트: 혼자 힘으로 생각하며 풀 수 있을 것 태그: 상 16234번: 인구 이동 문제 해석 인구 이동은 하루동안 진행, 인구 이동이 없을 때까지 진행 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을 오늘 하루동안 연다 옆 나라와의 인구차이가 L명 이상 R명 이하 → abs 열어야 하는 국경선이 모두 열렸다면 인구 이동 시작 국경선이 열려있어 인접한 칸만을 이용해 이동할 수 있으면, 그 나라를 오늘 하루 동안은 연합이라고 함 연합을 이루고 있는 각 칸의 인구수는 (연합의 인구수)/(연합을 이루고 있는 칸의 개수) 연합을 해체하고 모든 국경선을 닫음 → 인구 이동이 며칠동안 발생..
·Algorithm/연습
뱀 1차: Yes 2차: No 3차: No 날짜: 2022년 4월 23일 코멘트: 혼자 힘으로 생각하며 풀 수 있을 것 태그: 중 3190번: 뱀 문제 구분 구현 문제와 큐 문제 해설 Point : 큐를 뱀의 길이라고 가정해야 함 → 큐의 앞 부분은 뱀의 꼬리고 큐의 뒤부분은 뱀의 머리이다. 문제 핵심 뱀이 벽에 닿거나 자기몸에 닿으면 반복을 종료하고 소요된 시간을 출력한다. 따라서 뱀의 몸이라는 것을 구분할 인자가 있어야 함 반복문을 종료할 조건 이동한 칸에 사과가 있으면, 사과를 먹고, 꼬리는 움직이지 않는다. 이동한 칸에 사과가 없으면, 꼬리는 사라진다. 뱀의 몸을 큐로 받기 때문에 popleft 로 뱀의 꼬리 위치를 파악하여 공백인 0으로 변경해준다. 뱀의 방향 전환 정보가 주어지고 해당하는 시간..
·Algorithm/연습
첫번째 시간초과 난 풀이 # 시간복잡도 때문에 불통!!! def solution(id_list, report, k): answer = [] report_list = dict() black_list = dict() # 1. 누가 누구에게 신고했는지 report_list에 기록 for user in report: report_user, target_user = user.split(' ') # 제보한 사람이 report_list에 없으면 리스트 추가 if report_user not in report_list: report_list[report_user] = [] # 제보 받은 사람이 제보한 사람의 리스트에 있으면 1회만 가능 (중복 신고 불가능) if target_user not in report_list[..
·Algorithm/연습
# 유기농 배추 # DFS 문제 ! import sys sys.setrecursionlimit(10000) t = int(input()) answer_list = [] dx = [-1,1,0,0] dy = [0,0,-1,1] def dfs(x,y): graph[x][y] = -1 for i in range(4): nx = x + dx[i] ny = y + dy[i] if 0
from bisect import bisect_left, bisect_right # 값이 [left_value, right_value]인 데이터의 개수를 반환하는 함수 def count_by_range(array, left_value, right_value): right_index = bisect_right(array, right_value) left_index = bisect_left(array, left_value) return right_index - left_index n, x = map(int, input().split()) # 데이터의 개수 N, 찾고자 하는 값 x array = list(map(int, input().split())) count = count_by_range(array,x,x..
SETORY
'Algorithm' 카테고리의 글 목록