파이썬

알고리즘

1316-백준-그룹 단어 체커

1. 문제 출처 https://www.acmicpc.net/problem/1316 1316번: 그룹 단어 체커 그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때 www.acmicpc.net 2. 풀이 단순 구현 문제이다 # 입력 n = int(input()) strings = [] for _ in range(n): strings.append(input()) def solution(): # 결과값 result = 0 # 문자열 하나씩 확인 for string in strings: flag = True # 각 문자 c = string[0..

알고리즘

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..

알고리즘/동적 계획법(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..

알고리즘

1755-백준-숫자놀이

1. 문제 출처 https://www.acmicpc.net/problem/1755 1755번: 숫자놀이 79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로 www.acmicpc.net 2. 풀이 단순 구현 문제이다. # 입력 m,n = map(int,input().split()) # 숫자와 문자열 num_name = ["zero","one","two","three","four","five","six","seven","eight","nine"] # 정수 리스트 int_list = [list(str(idx)) f..

알고리즘

5555-백준-반지

1. 문제 출처 https://www.acmicpc.net/problem/5555 5555번: 반지 당신은 N개의 반지를 가지고 있다. 각각의 반지는 대문자 10 문자로 이루어진 문자열이 새겨져 있다. 반지는 문자열의 시작과 끝이 연결된 형태로 문자가 새겨져 있다. 반지에 각인된 문자열을 www.acmicpc.net 2. 풀이 # 입력 ring_str = input() n = int(input()) rings =[] for _ in range(n): rings.append(input()) count = 0 # 똑같은 문자열 2개을 이어 붙이고 해당 문자열에 원하는 문자열이 있으면 # count+=1을 헤준다. for ring in rings: if (ring*2).find(ring_str) != -1: ..

easysheep
'파이썬' 태그의 글 목록 (2 Page)