Python

알고리즘/Dijkstra algorithm(데이크스트라 알고리즘)

[Python]4485-백준-녹색 옷 입은 애가 젤다지?

1. 문제 출처 https://www.acmicpc.net/problem/4485 4485번: 녹색 옷 입은 애가 젤다지? 젤다의 전설 게임에서 화폐의 단위는 루피(rupee)다. 그런데 간혹 '도둑루피'라 불리는 검정색 루피도 존재하는데, 이걸 획득하면 오히려 소지한 루피가 감소하게 된다! 젤다의 전설 시리즈의 주 www.acmicpc.net 2. 풀이 기본적인 데이크스트라 알고리즘을 사용하는 문제이다. 변형된 점은 인접한 노드를 구할 때 리스트나 메트릭스를 이용하는 것이 아닌 , 해당 좌표의 상하 좌우를 가지고 온다는 것이다. # 데이크스트라 알고리즘을 위한 힙 모듈 불러오기 import heapq # 입력 result = [] n = int(input()) while n!=0: #입력 graph =..

알고리즘/브루트 포스

15686-백준-치킨 배달

1. 문제 출처 https://www.acmicpc.net/problem/15686 15686번: 치킨 배달 크기가 N×N인 도시가 있다. 도시는 1×1크기의 칸으로 나누어져 있다. 도시의 각 칸은 빈 칸, 치킨집, 집 중 하나이다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸 www.acmicpc.net 2. 풀이 처음에는 다음과 같이 치킨집의 개수가 M개가 되는 모든 경우의 수를 재귀로 구하였다. 하지만 시간 초과 되었다... # 입력 받기 N,M = map(int, input().split()) city = [0 for _ in range(N)] result = [] for idx in range(N): city[idx] = list(map(int, inp..

알고리즘

3190-백준-뱀

1. 문제 출처 https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 2. 풀이 몸의 좌표 배열은 머리가 앞에서 추가되고 꼬리는 뒤에서 빠져야 하기 때문에 자료 구조를 덱으로 생각하고 사용 하였고방향 전환 배열은 먼저 추가한 데이터를 먼저 빼서 사용해야 하기 때문에 큐 라고 생각 하고 사용 하였다. # 필요한 변수 선언 및 초기화 size = int(input()) apple_num = int(input()) apple_list = [] body = [[0..

알고리즘

9996-백준-한국이 그리울 땐 서버에 접속하지

1. 문제 출처 https://www.acmicpc.net/problem/9996 9996번: 한국이 그리울 땐 서버에 접속하지 총 N개의 줄에 걸쳐서, 입력으로 주어진 i번째 파일 이름이 패턴과 일치하면 "DA", 일치하지 않으면 "NE"를 출력한다. 참고로, "DA"는 크로아티어어로 "YES"를, "NE"는 "NO"를 의미한다. www.acmicpc.net 2. 풀이 2가지 방법이 존재한다. 1. 정규 표현식 미사용 # 테스트 케이스 개수 받기 N = int(input()) # 패턴 받은 후 *을 기준으로 자른다. pattern = input().split("*") # 패턴의 길이 구하기 pattern_len = len(pattern[0])+len(pattern[1]) def check(): # 결과..

알고리즘/너비 우선 탐색(bfs)

9205-백준-맥주 마시면서 걸어가기

1. 문제 출처 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 2. 풀이 # 테스트 테이스의 개수 t = int(input()) # 편의점 좌표 입력받는 함수 get_coordinate = (lambda : list(map(int,input().split())) ) # 길이 구하는 함수 get_legth = (lambda start , end : abs(start[0]-end[0])+abs(start[1]-end[1])) # 결과 저장하..

알고리즘/너비 우선 탐색(bfs)

7562-백준-나이트의 이동

1. 문제 출처 https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net 2. 풀이 # 테스트 케이스 개수 받기 test_case_num = int(input()) # 나이트 8방향으로 이동 시 바뀌는 좌표 크기 # 원점이 좌측 상단 꼭지점이고 오른쪽, 아래쪽으로 갈 때 마다 # 1 씩 좌표가 늘어나고 그 반대는 1씩 줄어 든다 # x좌표 변화량 리스트 # x 좌표 변화량 리스트가 4인 이유는 # 원래 [-2,-1,1,2,-2,-1,1,2] 인데 -2,-..

파이썬/matplotlib

Colab 에서 Matplotlib 폰트 깨짐(추가:AttributeError: module 'matplotlib.font_manager' has no attribute 'rebuild')

1. 문제 Matplotlib을 이용하여 그래프를 그리는 도중 다음과 같은 오류 발생 2. 원인 한글 폰트를 설정해 주지 않았기 때문에 "로멘스" 등 한국어가 깨져서 나오는 것 이다. 3. 해결법 # 폰트 설치 및 런타임 종료 #import matplotlib.font_manager as fm #import os # apt-get : 패키지 설치 명령어 # -qq : 에러외의 메세지 숨기는 옵션 #!apt-get -qq install fonts-nanum # font_manager 리빌드 #fm._rebuild() # colab 연결 종료 #os.kill(os.getpid(), 9) 위 의 코드를 실행 후 다음의 코드를 실행해준다. # 폰트 설정 #import matplotlib.pyplot as plt..

알고리즘/그리드 알고리즘

백준_11047_동전 문제

문제 출처 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 해결(코드) 단순한 그리디 알고리즘 문제이다. # 동전 갯수 , 목표 액수 받기 input_list = input().split() N = int(input_list[0]) K = int(input_list[1]) # 동전 개수 만큼 배열 생성 coin_list = [0] * N # 빈리스트로 생성 해서 append해도 되..

easysheep
'Python' 태그의 글 목록 (2 Page)