브루트포스 알고리즘 39

백준(Python) 14500번 테트로미노 풀이

Python으로 구현한 14500번 테트로미노 문제 풀이입니다. https://www.acmicpc.net/problem/14500 14500번: 테트로미노 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변 www.acmicpc.net # Case 1 n, m = map(int, input().split()) board = [list(map(int, input().split())) for _ in range(n)] max_value = 0 # 테트로미노 좌표 정보 (기준점은 가장 왼쪽 + 위쪽에 위치한 정사각형) case = [ # case 1 (ㅡ, ㅣ) [[0,..

백준(Python) 14889번 스타트와 링크 풀이

Python으로 구현한 14889번 스타트와 링크 문제 풀이입니다. https://www.acmicpc.net/problem/14889 14889번: 스타트와 링크 예제 2의 경우에 (1, 3, 6), (2, 4, 5)로 팀을 나누면 되고, 예제 3의 경우에는 (1, 2, 4, 5), (3, 6, 7, 8)로 팀을 나누면 된다. www.acmicpc.net def cal_diff(team1, team2) : sum_team1 = 0 sum_team2 = 0 for i in range(len(team1)) : for j in range(len(team1)) : sum_team1 += board[team1[i]][team1[j]] sum_team2 += board[team2[i]][team2[j]] retu..

백준(Python) 4375번 1 풀이

Python으로 구현한 4375번 1 문제 풀이입니다. https://www.acmicpc.net/problem/4375 4375번: 1 2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오. www.acmicpc.net while True : try : n = int(input()) value = '1' while True : if int(value) % n == 0 : print(len(value)) break value += '1' except EOFError : break 1. 여러 개의 테스트 케이스로 이루어지므로 try ~ except 를 통해 코드를 작성한다. 2. 처음 value 값은 '1'로 초기화 해준..

백준(Python) 14501번 퇴사 풀이

Python으로 구현한 14501번 퇴사 문제 풀이입니다. https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net n = int(input()) # 전체 상담 개수 t = [] # 각 상담을 완료하는 데 걸리는 기간 p = [] # 각 상담을 완료했을 때 받을 수 있는 금액 dp = [0] * (n + 1) # 다이나믹 프로그래밍을 위한 1차원 dp 테이블 초기화 max_value = 0 for _ in range(n) : x, y = map(int, input().split()) t.append(x) p.append(y) # 리스트를 뒤에서부터 거꾸로 확인 for i in range(n..

백준(Python) 18428번 감시 피하기 풀이

Python으로 구현한 18428번 감시 피하기 문제 풀이입니다. https://www.acmicpc.net/problem/18428 18428번: 감시 피하기 NxN 크기의 복도가 있다. 복도는 1x1 크기의 칸으로 나누어지며, 특정한 위치에는 선생님, 학생, 혹은 장애물이 위치할 수 있다. 현재 몇 명의 학생들은 수업시간에 몰래 복도로 빠져나왔는데, 복 www.acmicpc.net from itertools import combinations n = int(input()) # 복도의 크기 board = [] # 복도 정보(N x N) teachers = [] # 모든 선생님 위치 정보 spaces = [] # 모든 빈 공간 위치 정보 for i in range(n) : board.append(list..

백준(Python) 14888번 연산자 끼워넣기 풀이

Python으로 구현한 14888번 연산자 끼워넣기 문제 풀이입니다. https://www.acmicpc.net/problem/14888 14888번: 연산자 끼워넣기 첫째 줄에 수의 개수 N(2 ≤ N ≤ 11)가 주어진다. 둘째 줄에는 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 100) 셋째 줄에는 합이 N-1인 4개의 정수가 주어지는데, 차례대로 덧셈(+)의 개수, 뺄셈(-)의 개수, www.acmicpc.net n = int(input()) # 연산을 수행하고자 하는 두 리스트 data = list(map(int, input().split())) # 더하기, 빼기, 곱하기, 나누기 연산자 개수 add, sub, mul, div = map(int, input().split()) # ..

백준(Python) 1543번 문서 검색 풀이

Python으로 구현한 1543번 문서 검색 문제 풀이입니다. https://www.acmicpc.net/problem/1543 1543번: 문서 검색 세준이는 영어로만 이루어진 어떤 문서를 검색하는 함수를 만들려고 한다. 이 함수는 어떤 단어가 총 몇 번 등장하는지 세려고 한다. 그러나, 세준이의 함수는 중복되어 세는 것은 빼고 세야 한 www.acmicpc.net s = input() target = input() result = 0 num = 0 while num

백준(Python) 12723번 Minimum Scalar Product (Small) 풀이

Python으로 구현한 12723번 Minimum Scalar Product (Small) 문제 풀이입니다. https://www.acmicpc.net/problem/12723 12723번: Minimum Scalar Product (Small) You are given two vectors v1=(x1,x2,...,xn) and v2=(y1,y2,...,yn). The scalar product of these vectors is a single number, calculated as x1y1+x2y2+...+xnyn. Suppose you are allowed to permute the coordinates of each vector as you wish. Choose two permuta www.a..

백준(Python) 2386번 도비의 영어 공부 풀이

Python으로 구현한 2386번 도비의 영어 공부 문제 풀이입니다. https://www.acmicpc.net/problem/2386 2386번: 도비의 영어 공부 출력의 각 줄은 입력으로 주어진 소문자와 그 소문자 알파벳이 나타난 횟수로 이루어진다. 이때 문장에서 해당 알파벳이 소문자로 나타나던 대문자로 나타나던 모두 세야 한다. www.acmicpc.net while True : n = input() if n == '#' : break value = n[0] data = n[2::] result = data.count(value) + data.count(value.upper()) print(value, result) 1. 입력받은 값이 '#'일 때까지 반복 수행한다. 2. value에 입력받은 n의..

백준(Python) 4641번 Doubles 풀이

Python으로 구현한 4641번 Doubles 문제 풀이입니다. https://www.acmicpc.net/problem/4641 4641번: Doubles 2~15개의 서로 다른 자연수로 이루어진 리스트가 있을 때, 이들 중 리스트 안에 자신의 정확히 2배인 수가 있는 수의 개수를 구하여라. 예를 들어, 리스트가 "1 4 3 2 9 7 18 22"라면 2가 1의 2배, 4가 2의 www.acmicpc.net while True : data = list(map(int, input().split())) if len(data) == 1 and data[0] == -1 : break result = 0 for i in range(len(data)-1) : if data[i] % 2 == 0 : if data..