파이썬

·Algorithm/baekjoon
문제https://www.acmicpc.net/problem/9205 풀이코드# 맥주 한 박스에는 맥주가 20개 들어있다. 목이 마르면 안되기 때문에 50미터에 한 병씩 마시려고 한다. 즉, 50미터를 가려면 그 직전에 맥주 한 병을 마셔야 한다.# 편의점에 들렸을 때, 빈 병은 버리고 새 맥주 병을 살 수 있다. 하지만, 박스에 들어있는 맥주는 20병을 넘을 수 없다. 편의점을 나선 직후에도 50미터를 가기 전에 맥주 한 병을 마셔야 한다.from collections import dequedef bfs(): que = deque() que.append((home_idx_x,home_idx_y)) while que: x,y = que.popleft() if ab..
·Algorithm/baekjoon
문제https://www.acmicpc.net/problem/17070 풀이 코드1(실패) (BFS탐색) from collections import dequen = int(input())mapp = [list(map(int, input().split())) for _ in range(n)]dx = [1, 1, 0] # 가로, 대각선, 세로 이동dy = [0, 1, 1]now = [0, 1, 2] # 0: 가로, 1: 대각선, 2: 세로dp = [[[0] * 3 for _ in range(n)] for _ in range(n)] # dp[y][x][방향] = 경로 개수 저장dp[0][1][0] = 1 # 처음 파이프 위치: (0,1)에서 가로로 시작que = deque([[0, 1, 0]]) # ..
·Algorithm/baekjoon
문제https://www.acmicpc.net/problem/4179풀이 코드from collections import dequeimport sys# J와 F동시에 BFS시작# 탐색한 좌표를 담을 수 있는 변수 x 필요 # 해당 변수에 J와 F를 구분할 수 있는 변수 필요# 좌표를 담은 변수x를 pop하며 탐색 진행# 탐색을 한 후, 다시 x에 저장, 이때 카운티 1증가# J가 F랑 곂치면 임파서블 출력# J가 벽 외각에 도달하면 cnt 출력r,c = map(int,input().split())dx = [-1,1,0,0]dy = [0,0,-1,1]answer = "IMPOSSIBLE"def bfs(): global answer while que: # print(mapp) ..
·Algorithm/baekjoon
문제 5972번: 택배 배송 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 www.acmicpc.net 코드 풀이 import heapq n,m = map(int,input().split()) INF = int(1e9) linked_list = [[] for _ in range(n+1)] for i in range(m): node1,node2,cost = map(int,input().split()) linked_list[node1].append((node2,cost)) linked_list[node2].append((node1,cost)) distance = [INF..
·Algorithm/baekjoon
문제 2212번: 센서 첫째 줄에 센서의 개수 N(1 ≤ N ≤ 10,000), 둘째 줄에 집중국의 개수 K(1 ≤ K ≤ 1000)가 주어진다. 셋째 줄에는 N개의 센서의 좌표가 한 개의 정수로 N개 주어진다. 각 좌표 사이에는 빈 칸이 하나 있 www.acmicpc.net 접근 방식 각 점들끼리의 거리를 구한다음, 이를 정렬하여 최장 길이를 제거한다. 이때 제거하는 개수는 집중국의 개수-1 로 제거하면 총 집중국의 개수 만큼 길이가 생성된다. 문제 풀이 # 고속도로 위에 최대 K개의 집중국을 세울 수 있음. # N개의 센서가 적어도 하나의 집중국과는 통신이 가능해야 하며, 집중국의 유지비 문제로 인해 각 집중국의 수신 가능 영역의 길이의 합을 최소화해야 함. # 각 집중국의 수신 가능영역의 거리의 합..
·Algorithm/baekjoon
14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, 곱 www.acmicpc.net 문제 풀이 n = int(input()) number_list = list(map(int,input().split())) operator_list = list(map(int,input().split())) #덧셈(+)의 개수, 뺄셈(-)의 개수, 곱셈(×)의 개수, 나눗셈(÷)의 개수이다. min_num = 1e9 max_num = -1e9 def operator(depth, total,plus,minus..
·Algorithm/baekjoon
참외밭 문제 시골에 있는 태양이의 삼촌 댁에는 커다란 참외밭이 있다. 문득 태양이는 이 밭에서 자라는 참외가 도대체 몇 개나 되는지 궁금해졌다. 어떻게 알아낼 수 있는지 골똘히 생각하다가 드디어 좋은 아이디어가 떠올랐다. 유레카! 1m2의 넓이에 자라는 참외 개수를 헤아린 다음, 참외밭의 넓이를 구하면 비례식을 이용하여 참외의 총개수를 구할 수 있다. 1m2의 넓이에 자라는 참외의 개수는 헤아렸고, 이제 참외밭의 넓이만 구하면 된다. 참외밭은 ㄱ-자 모양이거나 ㄱ-자를 90도, 180도, 270도 회전한 모양(┏, ┗, ┛ 모양)의 육각형이다. 다행히도 밭의 경계(육각형의 변)는 모두 동서 방향이거나 남북 방향이었다. 밭의 한 모퉁이에서 출발하여 밭의 둘레를 돌면서 밭경계 길이를 모두 측정하였다. 예를 ..
연속 부분 수열 합의 개수 문제 설명 철호는 수열을 가지고 놀기 좋아합니다. 어느 날 철호는 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 일반적인 수열에서 처음과 끝이 연결된 형태의 수열을 말합니다. 예를 들어 수열 [7, 9, 1, 1, 4] 로 원형 수열을 만들면 다음과 같습니다. 원형 수열은 처음과 끝이 연결되어 끊기는 부분이 없기 때문에 연속하는 부분 수열도 일반적인 수열보다 많아집니다. 원형 수열의 모든 원소 elements가 순서대로 주어질 때, 원형 수열의 연속 부분 수열 합으로 만들 수 있는 수의 개수를 return 하도록 solution 함수를 완성해주세요. 제한사항 3 ≤ elements의 길..
다음 큰 숫자 문제 설명 자연수 n이 주어졌을 때, n의 다음 큰 숫자는 다음과 같이 정의 합니다. 조건 1. n의 다음 큰 숫자는 n보다 큰 자연수 입니다. 조건 2. n의 다음 큰 숫자와 n은 2진수로 변환했을 때 1의 갯수가 같습니다. 조건 3. n의 다음 큰 숫자는 조건 1, 2를 만족하는 수 중 가장 작은 수 입니다. 예를 들어서 78(1001110)의 다음 큰 숫자는 83(1010011)입니다. 자연수 n이 매개변수로 주어질 때, n의 다음 큰 숫자를 return 하는 solution 함수를 완성해주세요. 제한 사항 n은 1,000,000 이하의 자연수 입니다.입출력 예 n result 78 83 15 23 입출력 예 설명 입출력 예#1 문제 예시와 같습니다. 입출력 예#2 15(1111)의 ..