본문 바로가기

전체 글

(227)
12100번: 2048 (Easy) / gold 2 / 백트래킹 https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net ''' 12100번: 2048 (Easy) / gold 2 / 백트래킹 ''' import sys import copy input = sys.stdin.readline # 방향(상하좌우)에 따라 그래프 움직이는 함수 def move_graph(dir, graph): collision = set() # 좌 if dir == 0: for y in range(1, N): f..
15683번: 감시 / gold 4 / 백트래킹 https://www.acmicpc.net/problem/15683 15683번: 감시 스타트링크의 사무실은 1×1크기의 정사각형으로 나누어져 있는 N×M 크기의 직사각형으로 나타낼 수 있다. 사무실에는 총 K개의 CCTV가 설치되어져 있는데, CCTV는 5가지 종류가 있다. 각 CCTV가 감 www.acmicpc.net ''' 15683번: 감시 / gold 4 / 백트래킹 ''' import sys input = sys.stdin.readline # cctv가 (x,y) 위치에서 inc 방향으로 볼 수 있는 위치들을 리턴하는 함수 def simulation_dir(x, y, graph, inc): dir = [] tx, ty = x, y while 0
1799번: 비숍 / gold 1 / 백트래킹 https://www.acmicpc.net/problem/1799 1799번: 비숍 첫째 줄에 체스판의 크기가 주어진다. 체스판의 크기는 10이하의 자연수이다. 둘째 줄부터 아래의 예와 같이 체스판의 각 칸에 비숍을 놓을 수 있는지 없는지에 대한 정보가 체스판 한 줄 단위로 www.acmicpc.net - 시간 초과 ''' 1799번: 비숍 / gold 1 ''' import sys import itertools input = sys.stdin.readline # 입력받기 n = int(input()) graph = [] black = [] white = [] for i in range(n): graph.append(list(map(int, input().split()))) for j in range(n..
17406번: 배열 돌리기 4 / gold 4 / 브루트포스 https://www.acmicpc.net/problem/17406 17406번: 배열 돌리기 4 크기가 N×M 크기인 배열 A가 있을때, 배열 A의 값은 각 행에 있는 모든 수의 합 중 최솟값을 의미한다. 배열 A가 아래와 같은 경우 1행의 합은 6, 2행의 합은 4, 3행의 합은 15이다. 따라서, 배열 A의 www.acmicpc.net ''' 17406번: 배열 돌리기 4 / gold 4 / 브루트포스 ''' import sys import itertools import copy from collections import deque input = sys.stdin.readline def rotate_arr(tmp, r, c, s): point = [r - s - 1, c - s - 1, r + s ..
17281번: ⚾ / gold 4 / 구현, 브루트포스 - 첫 코드 : 시간 초과 ''' 17281번: ⚾ / gold 4 / ''' import sys import itertools input = sys.stdin.readline # 입력받기 N = int(input()) baseBallScore = [] for _ in range(N): baseBallScore.append(list(map(int, input().split()))) # 경우의 수 만들기 arr = [i for i in range(1, 9)] allCase = itertools.permutations(arr, len(arr)) # 시뮬레이션 maxScore = 0 for case in allCase: case = list(case) case.insert(3, 0) nowOrder = 0 s..
2346번: 풍선 터뜨리기 / silver 3 / 덱 https://www.acmicpc.net/problem/2346 2346번: 풍선 터뜨리기 1번부터 N번까지 N개의 풍선이 원형으로 놓여 있고. i번 풍선의 오른쪽에는 i+1번 풍선이 있고, 왼쪽에는 i-1번 풍선이 있다. 단, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선 www.acmicpc.net ''' 2346번: 풍선 터뜨리기 / silver 3 / 덱 ''' import sys input = sys.stdin.readline # 입력받기 N = int(input()) arr = list(map(int, input().split())) visited = [False for _ in range(N)] now_index = 0 cnt = 0 while True: # 터뜨리..
1302번: 베스트셀러 / silver 4 / 문자열, 정렬 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 주어진다. 이 값은 1,000보다 작거나 같은 자연수이다. 둘째부터 N개의 줄에 책의 제목이 입력으로 들어온다. 책의 제목의 길이는 50보다 작거나 같고 www.acmicpc.net ''' 1302번: 베스트셀러 / silver 4 / 문자열, 정렬 ''' import sys input = sys.stdin.readline # 입력받기 N = int(input()) seller = [] for _ in range(N): book = input().rstrip() seller.append(book) # 문자열 사전순으로 정렬하기 seller.sort() # 베스트셀러 책..
14499번: 주사위 굴리기 / gold 4 / 구현, 시뮬레이션 https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net ''' 14499번: 주사위 굴리기 / gold 4 / 구현, 시뮬레이션 ''' import sys input = sys.stdin.readline # 입력 받기 N, M, x, y, K = map(int, input().split()) graph = [] for _ in range(N): graph.append(list(map(i..