전체 카테고리

    [백준] 1182: 부분수열의 합

    [백준] 1182: 부분수열의 합

    1182번: 부분수열의 합 import sysfrom itertools import combinationsn, s = map(int, sys.stdin.readline().split())arr = list(map(int, sys.stdin.readline().split()))def solution(n, s, arr): count = 0 for i in range(1, n+1): for num in combinations(arr, i): if sum(num) == s: count += 1 return countprint(solution(n, s, arr))부분 수열의 합이 s가 되는 경우를 구해야 하는 완전탐색 문제입니다.부분수열이..

    [백준] 2178: 미로 탐색

    [백준] 2178: 미로 탐색

    https://www.acmicpc.net/problem/2178 from collections import dequeimport sysn, m = map(int, sys.stdin.readline().split())graph = [ list(map(int, sys.stdin.readline().strip())) for _ in range(n) ]visited = [ [0]*m for _ in range(n) ]dx = [ 0, 0, -1, 1 ]dy = [ -1, 1, 0, 0 ]def bfs(): visited[0][0] = 1 q = deque() q.append([0, 0]) while q: x, y = q.popleft() if x == n-1 an..

    [백준] 7568: 덩치

    [백준] 7568: 덩치

    https://www.acmicpc.net/problem/7568 7568번: 덩치우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩www.acmicpc.net  import sysn = int(sys.stdin.readline())people, res, cnt = [], [], 1for _ in range(n): weight, height = map(int, sys.stdin.readline().split()) people.append((weight, height))for i in range(n): #1 for j in rang..

    [백준] 2798: 블랙잭

    [백준] 2798: 블랙잭

    2798번 : 블랙잭 import sysfrom itertools import combinationsdef solution(n, m, cards): total = 0 for card in combinations(cards, 3): if sum(card) 모든 경우를 탐색해야해서 완전탐색 문제인데, 그 중 3개만을 더해야 하는 문제입니다. 그런데 5 6 7과 7 6 5는 순서는 다르지만 같은 것으로 인식하기 때문에 순서를 고려하지 않는 조합을 사용해야 하는 문제입니다. itertools, combinations를 사용해서 문제를 풀었습니다.부분수열의 합

    [백준] 2231: 분해합

    [백준] 2231: 분해합

    https://www.acmicpc.net/problem/2231 2231번: 분해합어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이www.acmicpc.net  import sysn = int(sys.stdin.readline())def solution(n): for i in range(1, n+1): digit_sum = 0 for digit_num in str(i): digit_sum += int(digit_num) if digit_sum + i == n: ..

    [백준] 1018: 체스판 다시 칠하기

    [백준] 1018: 체스판 다시 칠하기

    https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다.www.acmicpc.net  import sysdef solution(): n, m = map(int, sys.stdin.readline().split()) graph = [ list(sys.stdin.readline().strip()) for _ in range(n) ] min_repaints = float("inf") def count_repaints(start_row, start_col): ..