본문 바로가기

ps5

[python] [백준] 1158 요세푸스 문제 문제 https://www.acmicpc.net/problem/1158 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 코드 import sys input = sys.stdin.readline n, k = map(int, input().split()) data = [i for i in range(1, n+1)] answer = [] start = k - 1 # 시작 위치 for _ in range(n): if len(data) == 1: # 배열이 1일때 예외 처리 answer.append(data.pop()) break answer.append(data.pop(start)) # 시작 위치 pop하고.. 2023. 3. 14.
[python] [백준] 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()) graph = [list(map(int, input().split())) for _ in range(n)] chicken = [] home = [] def get_dist(x1, y1, x2, y2): return abs(x1 - x2) + ab.. 2023. 3. 4.
[python] [백준] 1260 DFS와 BFS - 2가지 풀이 문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 코드1 (인접 리스트) from collections import deque def dfs(v): # 방문 처리 visited[v] = True print(v, end=" ") # 방문한 노드의 인접 노드 탐색 for i in graph[v]: # 인접한 노드 중 아직 방문하지 않은 노드 DFS if not visited[i]: dfs(i) def bfs.. 2023. 2. 3.
[python] [프로그래머스] 이모티콘 할인행사 문제 https://school.programmers.co.kr/learn/courses/30/lessons/150368 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. 각 이모티콘 별로 모든 할인율 조합 -> candidates = list(itertools.product()) 2. 각 조합을 탐색 -> (for candi in candidates) 3. 각 유저 탐색 -> (for user in users) 4. 하나의 유저마다, 하나의 조합 탐색 -> (for i in range(len(candi))) 5. 구매 금액 계산 -> if 문으로.. 2023. 2. 3.