반응형

개발 연습장 223

[파이썬, Python] 백준 1987: 알파벳

문제 https://www.acmicpc.net/problem/1987 1987번: 알파벳 세로 R칸, 가로 C칸으로 된 표 모양의 보드가 있다. 보드의 각 칸에는 대문자 알파벳이 하나씩 적혀 있고, 좌측 상단 칸 (1행 1열) 에는 말이 놓여 있다. 말은 상하좌우로 인접한 네 칸 중의 한 칸으 www.acmicpc.net 코드 r, c = map(int, input().split()) board = [list(input()) for i in range(r)] visited = set() ans = 0 dx = [1, -1, 0, 0] dy = [0, 0, 1, -1] def dfs(x, y): global ans visited.add(board[x][y]) ans = max(ans, len(visite..

[파이썬, Python] 백준 5525: IOIOI

문제 https://www.acmicpc.net/problem/5525 5525번: IOIOI N+1개의 I와 N개의 O로 이루어져 있으면, I와 O이 교대로 나오는 문자열을 PN이라고 한다. P1 IOI P2 IOIOI P3 IOIOIOI PN IOIOI...OI (O가 N개) I와 O로만 이루어진 문자열 S와 정수 N이 주어졌을 때, S안에 PN이 몇 www.acmicpc.net 코드 n = int(input()) m = int(input()) s = input() s = s[s.find("IOI"):s.rfind("IOI")+3] start, end = 0, 0 cnt = 0 while end < m: if s[end:end + 3] == "IOI": end += 2 if end - start ==..

[파이썬, 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

반응형