본문 바로가기

Python7

백준 사회망 서비스(Python/Go) 문제 링크: www.acmicpc.net/problem/2533 2533번: 사회망 서비스(SNS) 페이스북, 트위터, 카카오톡과 같은 사회망 서비스(SNS)가 널리 사용됨에 따라, 사회망을 통하여 사람들이 어떻게 새로운 아이디어를 받아들이게 되는가를 이해하는 문제가 중요해졌다. 사회망 www.acmicpc.net dp+dfs로 풀이할 수 있는 문제입니다. 우선 본인이 얼리어답터가 아닐 때는 친구들은 얼리어답터일 수도 있고 아닐 수도 있습니다. 그러나 본인이 얼리어답터가 아니라면 친구들은 모두 얼리어답터여야 합니다. 얼리어답터인 경우와 아닌 경우를 따져야하므로 dp는 dp[i][0], dp[i][1] 이렇게 2차원으로 만듭니다. dp의 값은 최소개수를 나타냅니다. 예를 들어 dp[1][0] 이라면 1번이.. 2021. 4. 15.
백준 사다리 조작(Python) 문제 링크: www.acmicpc.net/problem/15684 15684번: 사다리 조작 사다리 게임은 N개의 세로선과 M개의 가로선으로 이루어져 있다. 인접한 세로선 사이에는 가로선을 놓을 수 있는데, 각각의 세로선마다 가로선을 놓을 수 있는 위치의 개수는 H이고, 모든 세로선 www.acmicpc.net 삼성 기출문제로 상당히 까다로운 문제입니다. 우선 사다리는 2차원 배열을 통해 만들 수 있습니다. input으로 n, m, h가 주어지는데 이때 사다리는 n과 h로 만들어야 하는 것에 주의해야 합니다. 이후 주어지는 가로선들은 2차원 배열에 1로 표시합니다. (예를 들어 1번째 줄 3과 4를 잇는 가로선은 graph[1][3]에만 1로 체크해두고 나중에 사다리를 내려오면서 왼쪽에도 가로선이 있는지.. 2021. 4. 6.
백준 차이를 최대로 (Python/Go) 문제 링크: www.acmicpc.net/problem/10819 10819번: 차이를 최대로 첫째 줄에 N (3 ≤ N ≤ 8)이 주어진다. 둘째 줄에는 배열 A에 들어있는 정수가 주어진다. 배열에 들어있는 정수는 -100보다 크거나 같고, 100보다 작거나 같다. www.acmicpc.net N의 범위가 8이하로 작기 때문에 모든 순열을 구해서 풀면 되는 문제입니다. 아래는 파이썬 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 import sys from itertools import permutations def get_num(nums): tot = 0 for i in range(1, len(nums)): tot += abs(nums[i-1] - .. 2021. 4. 5.
백준 게임개발 (Python/Go) 문제 링크: www.acmicpc.net/problem/1516 위상 정렬 문제입니다. 그런데 최소 시간을 알아내야 하기 때문에 위상정렬 + heap을 사용하여 풀어야 합니다. 아래는 파이썬 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 import heapq from collections import defaultdict n = int(input()) degree = [0] * (n+1) # degree[1] = 2 이라면 1번 건물을 짓기 위해 먼저 지어져야 하는 건물이 2개라는 뜻 time = [0] * (n+1) # 각 건물 짓는데 걸.. 2021. 4. 4.