백준

알고리즘

14499-백준-주사위 굴리기

1. 문제 출처 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 2. 풀이 주사위를 위, 아래, 나머지로 나누어서 하였다. 여기서 나머지는 바닥 눈금의 동,서,북,남 순 으로 정렬하였으며 이를 이용하여 좀더 편하게 주사위 굴리기를 할 수 있었다.. # 입력 n,m,x,y,k = map(int,input().split()) dice_map = [] for _ in range(n):..

알고리즘

13458-백준-시험 감독

1. 문제 출처 https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 2. 풀이 단순한 구현 문제이다 # 입력 n = int(input()) tests = list(map(int, input().split())) total, vice = map(int, input().split()) # 모든 시험장에 총감독관 1명씩 들어 가므로 시험장 개수 만큼 감독관 수를 더해준다. count = len(t..

알고리즘/너비 우선 탐색(bfs)

2178-백준-미로 탐색

1. 문제 출처 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 2. 풀이 단순 bfs알고리즘을 사용하는 문제이다.. # 입력받기 n,m = map(int,input().split()) # 미로 maze = [] # 상하 좌우 이동 범위 dx = [0,0,-1,1] dy = [-1,1,0,0] # 입력 받기 for i in range(n): maze.append(list(map(int,list(input())))) # bfs를 사용하여 문제를 해결하였다.. def soluti..

알고리즘/동적 계획법(Dynamic Programming)

2229-백준-조 짜기

1. 문제 출처 https://www.acmicpc.net/problem/2229 2229번: 조 짜기 알고스팟 캠프에 N(1 ≤ N ≤ 1,000)명의 학생들이 참여하였다. 학생들은 열심히 공부를 하고 있었는데, 어느 날 조별 수업을 진행하기로 하였다. 조별 수업의 목적은 잘 하는 학생들과 덜 잘 하는 www.acmicpc.net 2. 풀이 다이나믹 프로그래밍 이용하면 된다. # 입력 n = int(input()) students = list(map(int,input().split())) g = [0 for _ in range(1+n)] # 다이나믹 프로그래밍을 이용하여 for i in range(n+1): ma = 0 mi = 10001 for j in range(i,0,-1): ma = max(ma..

알고리즘/그리드 알고리즘

13413-백준-오셀로 재배치

1. 문제 출처 https://www.acmicpc.net/problem/13413 13413번: 오셀로 재배치 로봇을 좋아하는 세희는 로봇동아리에서 카메라와 센서, 라즈베리 파이, 집게발을 이용해 로봇을 완성하였다. 이 로봇을 통해서 오셀로 재배치라는 작업을 하려고 한다. 오셀로 말은 앞면이 검 www.acmicpc.net 2. 풀이 그리드 알고리즘 문제로 뒤집어야 하는 돌의 위치를 먼저 파악 후 자리를 바꾸는 돌을 파악한다. # 그리디 알고리즘을 사용하여 먼저 색깔의 차이를 확인한 후 # 자리를 바꾸도록 한다. #입력 t = int(input()) for _ in range(t): size = int(input()) init = input() goal = input() result = 0 change..

알고리즘/동적 계획법(Dynamic Programming)

12865-백준-평범한 배낭

1. 문제 출처 https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 2. 풀이 해당 문제는 흔히 Knapsack 알고리즘 문제이다 가방의 담을 수 있는 무게가 정해져 있을 때, 최대한 가치를 가지도록 배낭을 싸는 문제이다.. 이를 다음과 같이 정의할 수있다. 1.현재 배낭의 한계량 보다 큰 무게의 물건은 넣지 않는다. 2.현재 배낭의 한계량 보다 작은 무게라면 더 좋은 가치의 물건을..

알고리즘

14405-백준-피카츄

1. 문제 출처 https://www.acmicpc.net/problem/14405 14405번: 피카츄 피카츄는 "pi", "ka", "chu"를 발음할 수 있다. 따라서, 피카츄는 이 세 음절을 합친 단어만 발음할 수 있다. 예를 들면, "pikapi"와 "pikachu"가 있다. 문자열 S가 주어졌을 때, 피카츄가 발음할 수 있는 문 www.acmicpc.net 2. 풀이 단순 구현 # 입력 talk = input() pikachu = ["pi","ka","chu"] idx = 0 # 해당 문자열로 이루어져 있는지 확인 def solution(check,idx): flag = True if talk[idx:idx+len(check)] == check: idx+=len(check) else: flag..

알고리즘/그리드 알고리즘

1969-백준-DNA

1. 문제 출처 https://www.acmicpc.net/problem/1969 1969번: DNA DNA란 어떤 유전물질을 구성하는 분자이다. 이 DNA는 서로 다른 4가지의 뉴클레오티드로 이루어져 있다(Adenine, Thymine, Guanine, Cytosine). 우리는 어떤 DNA의 물질을 표현할 때, 이 DNA를 이루는 뉴클레오 www.acmicpc.net 2. 풀이 그리디 알고리즘을 이용한 문제이다.. 힌트에 브루투포스 알고리즘도 적혀있던데 왜일까?? hamming_distance 구하는 과정이 모든 dna와 연산해야 해서 그런가? # 입력 n,m = map(int,input().split()) dnas = [] for _ in range(n): dnas.append(input()) # ..

easysheep
'백준' 태그의 글 목록 (3 Page)