목록Coding Test/백준 (12)
욤미의 개발일지
2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 정사각형 모양의 지도 1은 집이 있는 곳을, 0은 집이 없는 곳 좌우로 연결된 집은 하나의 단지이다. 단지수를 구하고 각 단지에 속하는 집의 수를 오름차순으로 정렬하여 출력 dfs를 수행하여 하나의 연결된 모든 집을 파악해야함 dfs 호출 횟수가 단지 수 dir = [(-1, 0), (1, 0), (0, -1), (0, 1)] # 상하좌우 탐색 def dfs(graph, x, y): global count visited[x][y] = True # 현재 위치 방문처..
2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net N * M 크기의 배열 미로 1: 이동할 수 있는 칸, 0: 이동할 수 없는 칸 (1,1) → (N,M)으로 가는 최소 칸 수 구하기 이때 서로 인접한 칸으로만 이동할 수 있다. 최소 거리 즉, BFS로 구해야한다. from collections import deque # 큐를 사용하기 위한 라이브러리 dir = [[1, 0], [-1, 0], [0, 1], [0, -1]] # 상하좌우 탐색을 위한 좌표 정의 def bfs(graph, x, y): queue = deque([(x, y)]) #..
15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 고른 수열은 오름차순이어야 한다. 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해..
15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 자연수 N과 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열 입력 첫째 줄에 자연수 N과 M이 주어진다. (1 ≤ M ≤ N ≤ 8) 출력 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. 풀이 dfs(재귀함수)를..
2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는가 N = int(input()) total = 0 while N >= 0: if N % 5 == 0: total += int(N // 5) print(total)..
[BOJ] 2847번 게임을 만든 동준이 (Python) 2847번: 게임을 만든 동준이 학교에서 그래픽스 수업을 들은 동준이는 수업시간에 들은 내용을 바탕으로 스마트폰 게임을 만들었다. 게임에는 총 N개의 레벨이 있고, 각 레벨을 클리어할 때 마다 점수가 주어진다. 플레이어 www.acmicpc.net N개의 레벨마다 점수가 주어진다. 플레이어의 점수 = 얻은 점수의 합 → 온라인 순위를 매김 낮은 레벨의 점수가 높은 레벨보다 낮게 조정해야함. 조건 낮은 레벨부터 점수가 입력으로 주어지기 때문에 마지막 입력으로 들어온 값이 가장 큰 값이다. 낮은 레벨의 점수는 반드시 다음 레벨의 점수보다 낮아야 한다. 점수 1을 낮추는 방법을 1이라고 했을 때, 최소의 방법을 구하라. 크거나 같은 경우, 해당 값보다 ..