알고리즘

알고리즘/Python

[python] 백준 1149 - RGB거리

출처 : 백준, https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 내가 푼 게 아니다..... 더보기 풀이 if __name__ == '__main__': n = int(input()) arr = [] for _ in range(n): arr.append(list(map(int, input().split()))) pre_index = arr[0].index(max(arr[0])) for i in range(1, n): ind..

알고리즘/Python

[python] 백준 24460 - 특별상이라도 받고 싶어

출처 : 백준, https://www.acmicpc.net/problem/24460 24460번: 특별상이라도 받고 싶어 첫 번째 줄에는 정수 $N$이 주어진다. (단, $N = 2^m$, $0 \le m \le 10$, $m$은 정수) 두 번째 줄부터 $N$개 줄의 $i$번째 줄에는 $i$번째 줄에 있는 의자에 적힌 추첨번호가 주어진다. 각 줄에는 $N$개의 추첨 www.acmicpc.net 룸메의 코골이를 피해 자취방으로 도피....... 덕분에 1일 1커밋 끊김.........다시 시작해야지 어휴 더보기 풀이 def Recursive(arr, start, end): start_x, start_y = start end_x, end_y = end if end_x - start_x == 1: return..

알고리즘/Python

[python] 백준 15657 - N과 M (8)

출처 : 백준, https://www.acmicpc.net/problem/15657 15657번: N과 M (8) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 더보기 풀이 stack = [] def DFS(start, num_list, N, M): if len(stack) == M: for num in stack: print(num_list[num], end=' ') print() return for index in range(start, N): stack.append(index) DFS(index, num_list, N, M)..

알고리즘/Python

[python] 백준 15656 - N과 M (7)

출처 : 백준, https://www.acmicpc.net/problem/15656 15656번: N과 M (7) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 더보기 풀이 stack = [] def DFS(num_list, N, M): if len(stack) == M: for num in stack: print(num_list[num], end=' ') print() return for index in range(N): stack.append(index) DFS(num_list, N, M) stack.pop() if __nam..

알고리즘/Python

[python] 백준 15655 - N과 M (6)

출처 : 백준, https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 더보기 풀이 stack = [] def DFS(start, num_list, N, M): if len(stack) == M: for num in stack: print(num_list[num], end=' ') print() return for index in range(start, N): stack.append(index) DFS(index + 1, num_list, N..

알고리즘/Python

[python] 백준 15654 - N과 M (5)

출처 : 백준, https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 더보기 풀이 stack = [] def DFS(num_list, N, M): if len(stack) == M: for num in stack: print(num_list[num], end=' ') print() return for index in range(0, N): if index not in stack: stack.append(index) DFS(num_list, ..

알고리즘/Python

[python] 백준 15652 - N과 M (4)

출처 : 백준, https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 더보기 풀이 stack = [] def DFS(start, N, M): if len(stack) == M: for num in stack: print(num, end=' ') print() return for index in range(start, N+1): stack.append(index) DFS(index, N, M) stack.pop() if __name__ == '__m..

알고리즘/Python

[python] 백준 15651 - N과 M (3)

출처 : 백준, https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 더보기 풀이 stack = [] def DFS(N, M): if len(stack) == M: for num in stack: print(num, end=' ') print() return for index in range(1, N+1): stack.append(index) DFS(N, M) stack.pop() if __name__ == '__main__': N, M = map..

알고리즘/Python

[python] 백준 15650 - N과 M (2)

출처 : 백준, https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해 www.acmicpc.net 더보기 풀이 stack = [] def DFS(start, N, M): if len(stack) == M: for num in stack: print(num, end=' ') print() return for index in range(start, N+1): stack.append(index) DFS(index + 1, N, M) stack.pop() if __name__ == ..

알고리즘/Python

[python] 백준 1748 - 수 이어 쓰기 1

출처 : 백준, https://www.acmicpc.net/problem/1748 1748번: 수 이어 쓰기 1 첫째 줄에 N(1 ≤ N ≤ 100,000,000)이 주어진다. www.acmicpc.net 더보기 풀이 if __name__ == '__main__': n = input() length = len(n) try: down_n = int("9" * (length - 1)) except: down_n = 0 ans = 0 for i in range(1, length): try: ans += (int('9' * i) - int('9' * (i-1))) * i except: ans += int('9' * i) * i ans += (int(n) - down_n) * length print(ans) 들어..

알고리즘/Python

[python] 백준 1012 - 유기농 배추

출처 : 백준, https://www.acmicpc.net/problem/1012 1012번: 유기농 배추 차세대 영농인 한나는 강원도 고랭지에서 유기농 배추를 재배하기로 하였다. 농약을 쓰지 않고 배추를 재배하려면 배추를 해충으로부터 보호하는 것이 중요하기 때문에, 한나는 해충 방지에 www.acmicpc.net DFS! DFS! 더보기 첫 번째 풀이 : RecursionError def DFS(current, matrix): dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] x, y = current if matrix[x][y]

알고리즘/Python

[python] 백준 6064 - 카잉 달력

출처 : 백준, https://www.acmicpc.net/problem/6064 6064번: 카잉 달력 입력 데이터는 표준 입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터는 한 줄로 구성된다. www.acmicpc.net 더보기 첫 번째 풀이 : 시간 초과 import math def lcm(N, M): G = math.gcd(N, M) return M * N // G if __name__ == '__main__': n = int(input()) for _ in range(n): N, M, x, y = map(int, input().split()) L = lcm(N, M) year = -1 for i ..

제주도랏맨
'알고리즘' 카테고리의 글 목록 (10 Page)