알고리즘55 백준_7576_토마토 https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토들의 정보가 주어진다. 즉, 둘째 줄부터 N개의 줄에는 상자에 담긴 토마토의 정보가 주어진다. 하나의 줄에는 상자 가로줄에 들어있는 토마토의 상태가 M개의 정수로 주어진다. 정수 1은 익은 토마토, 정수 0은 익지 않은 토마토, 정수 -1은 토마 www.acmicpc.net 해결 방법 > 토마토 상자가 주어지면 이튿날에 익은 토마토의 상하좌우의 토마토들이 익게 되고 다음날 또한 익은 토마토들의 상하좌우의 토마토.. 2020. 1. 15. 서로소 집합(disjoint set) 연습 해결 방법 : 각 사람의 친구관계를 dict으로 설정하여 Q가 입력되면 해당하는 value(친구의 수)를 출력하고 M이 입력되면 각 value를 합친다. 문제점 : 이 문제에서 disjoint set이 어디에 해당하는지 모르겠다. 코드 더보기 n, m = map(int,input().split()) input_info = [] human_relations = dict() for i in range(1,n+1): human_relations[i] = 1 for i in range(m): a = input().split() if a[0] == 'Q': a[1] = int(a[1]) print(human_relations[a[1]]) elif a[0] == 'M': a[1] = int(a[1]) a[2] = .. 2020. 1. 14. 백준_15649_N과 M(1) https://www.acmicpc.net/problem/15649 15649번: N과 M (1) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 해결 방법 : 문제 설명을 보면 1부터 N까지 자연수 중에서 중복 없이 M개를 고른 수열을 구하는 문제인 것을 알 수 있다. 이것을 잘 생각해보면 학창시절에 배웠던 수학이 하나 떠오르는데 그것은 바로 "서로 다른 N개에서 M개를 구하는 방법 즉 "순열"" 이다. 파이썬에서 순열을 구하는 permutation 함수가 존재한다. 그것을 이용하여 풀었다. 코드 더보기 import iterto.. 2020. 1. 13. 이전 1 ··· 11 12 13 14 다음