파이썬 31

[python] 백준 7569번: 토마토(BFS)

# 7569 토마토 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline from collections import deque move = [(0,0,1), (0,0,-1), (1,0,0), (0,1,0), (-1,0,0), (0,-1,0)] M, N, H = map(int, input().split()) graph = [[list(map(int, i..

Algorithm 2023.02.23

[DRF] retrieve 메서드와 router 변수 사용하기

# APIvew와 ViewSet으로 Response하기 [DRF] DB에 저장된 데이터를 APIview와 ViewSet으로 Response하기 Django REST Framework에서 views.py 파일은 API 엔드포인트를 처리하는 함수를 정의하는 곳이다. 기본적으로 DRF에서 제공하는 APIview나 ViewSet 클래스를 상속하여 사용하며, 각 클래스는 HTTP 요청 메서드(GE emhaki.tistory.com 이전에 포스팅했던 내용의 확장으로 News 리스트를 출력하고 detail페이지까지 넘겨주는 방법에 대해 정리해보고자 한다. 🔎 views.py class NewsViewSet(viewsets.ModelViewSet): queryset = News.objects.all() serializ..

Python/DRF 2023.02.18

[python] 백준 2293번: 동전1(DP)

# 2293 동전1 https://www.acmicpc.net/problem/2293 2293번: 동전 1 첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다. 동전의 가치는 100,000보다 작거나 같은 자연수이다. www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) coins = [] for _ in range(n): coins.append(int(input())) dp = [0] * (k + 1) dp[0] = 1 for i in coins: for j in range(i, k+1): if j - i >=..

Algorithm 2023.02.18

[python] 백준 12865번: 평범한 배낭(DP)

# 12865 평범한 배낭 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline N, K = map(int, input().split()) bag = [(0,0)] # 인덱스 0자리 차지하기 for _ in range(N): W, V = map(int, input().split()) bag.append((W,..

Algorithm 2023.02.18

[DRF] DB에 저장된 데이터를 APIview와 ViewSet으로 Response하기

Django REST Framework에서 views.py 파일은 API 엔드포인트를 처리하는 함수를 정의하는 곳이다. 기본적으로 DRF에서 제공하는 APIview나 ViewSet 클래스를 상속하여 사용하며, 각 클래스는 HTTP 요청 메서드(GET, POST, PUT, DELETE)에 대한 처리 함수를 가지고 있다. DB에 저장된 데이터를 출력하는 방법을 살펴보기전에 views.py의 기본적인 구조는 다음과 같다. 🔎 views.py from rest_framework.views import APIView from rest_framework.response import Response class MyView(APIView): def get(self, request): # GET 요청 처리 # 결과 데이..

Python/DRF 2023.02.17

[python] 백준 12904번: A와 B(Greedy)

# 12904 A와 B https://www.acmicpc.net/problem/12904 12904번: A와 B 수빈이는 A와 B로만 이루어진 영어 단어가 존재한다는 사실에 놀랐다. 대표적인 예로 AB (Abdominal의 약자), BAA (양의 울음 소리), AA (용암의 종류), ABBA (스웨덴 팝 그룹)이 있다. 이런 사실에 놀란 수 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline S = list(map(str, input().strip())) T = list(map(str, input().strip())) while len(S) != len(T): if T[-1] == 'A': T.pop() elif T[-1] == 'B': T.pop(..

Algorithm 2023.02.16

[python] 백준 11501번: 주식(Greedy)

# 11501 주식 https://www.acmicpc.net/problem/11501 11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline T = int(input()) # 테스트 케이스 for _ in range(T): day = int(input()) # 날 price = list(map(int, input().split())) benefit = 0 while True: if len(price) == 0: break # [..

Algorithm 2023.02.16

[python] 백준 16236번: 아기 상어(BFS)

# 16236 아기 상어 https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline from collections import deque N = int(input()) graph = [list(map(int, input().split())) for _ in range(N)] baby_shark = [] # 먹을 수 있는 물고기가 1마리라면, 그 물고기를 먹으러 간다. # ..

Algorithm 2023.02.15

[python] 백준 11060번: 점프 점프(DP)

# 11060 점프 점프 https://www.acmicpc.net/problem/11060 11060번: 점프 점프 재환이가 1×N 크기의 미로에 갇혀있다. 미로는 1×1 크기의 칸으로 이루어져 있고, 각 칸에는 정수가 하나 쓰여 있다. i번째 칸에 쓰여 있는 수를 Ai라고 했을 때, 재환이는 Ai이하만큼 오른쪽으로 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline N = int(input()) jump_list = list(map(int, input().split())) dp = [-1] * N dp[0] = 0 for current in range(0, N-1): if dp[current] == -1: continue for next_step ..

Algorithm 2023.02.15

[python] 백준 7576번: 토마토(BFS)

# 7576 토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net ⭐ 코드 import sys input = sys.stdin.readline from collections import deque M, N = map(int, input().split()) boxes = [list(map(int, input().split())) for _ in range(N)] dx, dy = [0,0,-1,1], [-1,1,0,0] queue..

Algorithm 2023.02.14
728x90