반응형

백준 215

[파이썬, Python] 백준 11725: 트리의 부모 찾기

문제 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 코드 import sys sys.setrecursionlimit(10**7) input = sys.stdin.readline n = int(input()) tree = [[] for _ in range(n+1)] parents = [0 for _ in range(n+1)] for _ in range(n-1): a, b = map(int, input().split()) tree[a].append(b) tree[b].append(a) def dfs(start..

[파이썬, Python] 백준 2468: 안전 영역

문제 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 코드 import copy import sys sys.setrecursionlimit(10**6) n = int(input()) land = list(list(map(int, input().split())) for i in range(n)) ans = [] dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] def dfs(x, y): new_land[x][y] = 0 for i in..

[파이썬, Python] 백준 17413: 단어 뒤집기 2

문제 https://www.acmicpc.net/problem/17413 17413번: 단어 뒤집기 2 문자열 S가 주어졌을 때, 이 문자열에서 단어만 뒤집으려고 한다. 먼저, 문자열 S는 아래와과 같은 규칙을 지킨다. 알파벳 소문자('a'-'z'), 숫자('0'-'9'), 공백(' '), 특수 문자('')로만 이루어져 www.acmicpc.net 코드 s = input() stack = [] ans = [] reverse = True for i in s: if i == ' ': while stack: ans.append(stack.pop()) ans.append(i) elif i == '': reverse = True ans.append(i) else: if not reverse: ans.append(..

[파이썬, Python] 백준 4963: 섬의 개수

문제 https://www.acmicpc.net/problem/4963 4963번: 섬의 개수 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스의 첫째 줄에는 지도의 너비 w와 높이 h가 주어진다. w와 h는 50보다 작거나 같은 양의 정수이다. 둘째 줄부터 h개 줄에는 지도 www.acmicpc.net 코드 import sys sys.setrecursionlimit(10**6) dx = [1, 1, -1, -1, 1, -1, 0, 0] dy = [0, 1, 0, 1, -1, -1, 1, -1] def dfs(x, y): land[x][y] = 0 for i in range(8): nx = x + dx[i] ny = y + dy[i] if 0

[파이썬, Python] 백준 6603: 로또

문제 https://www.acmicpc.net/problem/6603 6603번: 로또 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 번째 수는 k (6 < k < 13)이고, 다음 k개 수는 집합 S에 포함되는 수이다. S의 원소는 오름차순으로 www.acmicpc.net 코드 from collections import deque while True: nums = deque(map(int, input().split())) k = nums.popleft() if k == 0: break s = [] def dfs(): if len(s) == 6: print(' '.join(map(str,s))) return for i in sorted(nums): i..

[파이썬, Python] 백준 2417: 정수 제곱근

문제 https://www.acmicpc.net/problem/2417 2417번: 정수 제곱근 정수가 주어지면, 그 수의 정수 제곱근을 구하는 프로그램을 작성하시오. www.acmicpc.net 코드 n = int(input()) start = 0 end = int(n ** (1/2)) while start = n: end = mid - 1 else: start = mid + 1 print(start) 설명 이분 탐색으로 해결했다. 시작지점은 0으로 잡아주고, 끝 지점은 n의 제곱근을 정수화해서 잡아줬다. (이 이상의 수는 무의미하다) 그리고 이분 탐색을 통해 결괏값을 도출했다.

[파이썬, Python] 백준 1072: 게임

문제 https://www.acmicpc.net/problem/1072 1072번: 게임 김형택은 지금 몰래 Spider Solitaire(스파이더 카드놀이)를 하고 있다. 형택이는 이 게임을 이길 때도 있었지만, 질 때도 있었다. 누군가의 시선이 느껴진 형택이는 게임을 중단하고 코딩을 하기 시 www.acmicpc.net 코드 x, y = map(int, input().split()) z = (y * 100) // x if z >= 99: print(-1) else: ans = 0 start = 1 end = x while start

[파이썬, Python] 백준 15655: N과 M (6)

문제 https://www.acmicpc.net/problem/15655 15655번: N과 M (6) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 코드 n, m = map(int, input().split()) nums = sorted(list(map(int, input().split()))) s = [] def dfs(start): if len(s) == m: print(' '.join(map(str,s))) return for i in range(start, len(nums)): if nums[i] not in s: s.a..

[파이썬, Python] 백준 15654: N과 M (5)

문제 https://www.acmicpc.net/problem/15654 15654번: N과 M (5) N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열 www.acmicpc.net 코드 n, m = map(int, input().split()) nums = list(map(int, input().split())) s = [] def dfs(): if len(s) == m: print(' '.join(map(str,s))) return for i in sorted(nums): if i not in s: s.append(i) dfs() s.pop() dfs() 설..

반응형