본문 바로가기

Algorithm 💡272

[백준 15650번] N과 M(2) 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net n, m = map(int,input().split()) is_used = [False]*(n+1) temp = [] answer = [] def back(start): if len(temp) == m: answer.append(' '.join(map(str,temp))) return for i in range(start,n+1): if i not in temp: temp.append(i) back(i+1) temp.pop() back(1) for ans in .. 2023. 9. 11.
[백준 15649번] N과 M(1) 15649번: N과 M (1)한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해www.acmicpc.netn, m = map(int,input().split())is_used = [False]*9temp = []answer = []def backtracking(): if len(temp) == m: answer.append(' '.join(map(str,temp))) return for i in range(1,n+1): if not is_used[i]: is_used[i] = True .. 2023. 9. 11.
[백준 20057번] 마법사 상어와 토네이도 20057번: 마법사 상어와 토네이도 마법사 상어가 토네이도를 배웠고, 오늘은 토네이도를 크기가 N×N인 격자로 나누어진 모래밭에서 연습하려고 한다. 위치 (r, c)는 격자의 r행 c열을 의미하고, A[r][c]는 (r, c)에 있는 모래의 양을 www.acmicpc.net n = int(input()) area = [list(map(int,input().split())) for _ in range(n)] dx = [0,1,0,-1] dy = [-1,0,1,0] count = 0 length = 1 direction = 0 answer = 0 x, y = n//2, n//2 def move(x,y,d): global answer total = area[x][y] five_percent = int(tot.. 2023. 9. 7.
[백준 19236번] 청소년 상어 19236번: 청소년 상어 첫째 줄부터 4개의 줄에 각 칸의 들어있는 물고기의 정보가 1번 행부터 순서대로 주어진다. 물고기의 정보는 두 정수 ai, bi로 이루어져 있고, ai는 물고기의 번호, bi는 방향을 의미한다. 방향 bi는 www.acmicpc.net import copy def find_x_y(fish_number,area): # 물고기의 x,y 좌표를 찾는 함수 for i in range(4): for j in range(4): if area[i][j][0] == fish_number: return i,j def find_shark_loc(area): # 상어의 x,y 좌표를 찾는 함수 for i in range(4): for j in range(4): if area[i][j][0] == .. 2023. 9. 6.
[백준 17144번] 미세먼지 안녕! 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net import sys r, c, t = map(int, sys.stdin.readline().split()) area = [list(map(int, sys.stdin.readline().split())) for _ in range(r)] dx = [-1,1,0,0] dy = [0,0,-1,1] cleaner_list = [] answer = 0 for i in range(r): for j in range(c): if area[i][j] == -1: cleaner_.. 2023. 9. 4.
[백준 15685번] 드래곤 커브 n = int(input()) area = [[0]*101 for _ in range(101)] data = [list(map(int,input().split())) for _ in range(n)] answer = 0 dx = [1,0,-1,0] dy = [0,-1,0,1] for x,y,d,g in data: routes = [d] area[x][y] = 1 for i in range(g): for j in range(len(routes)-1,-1,-1): routes.append((routes[j]+1)%4) for route in routes: nx, ny = x + dx[route], y + dy[route] area[nx][ny] = 1 x, y = nx, ny for i in range(10.. 2023. 9. 2.