https://www.acmicpc.net/problem/1449 1449번: 수리공 항승 첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나 www.acmicpc.net 아이디어 받은 데이터를 크기 순으로 오름차순 정렬 값을 순회하며 L-1 (= L-0.5-0.5) 의 값보다 큰 값이 필요해지면 (현재 순회하는 값 - 시작 값이 L-1 보다 크면) 카운트 값을 올리고 현재 위치부터 다시 계산한다 전체 코드 N, L = map(int, input().split()) datas = [int(x) for x in input().split()] datas..
Coding Test/Python
https://www.acmicpc.net/problem/8979 8979번: 올림픽 입력의 첫 줄은 국가의 수 N(1 ≤ N ≤ 1,000)과 등수를 알고 싶은 국가 K(1 ≤ K ≤ N)가 빈칸을 사이에 두고 주어진다. 각 국가는 1부터 N 사이의 정수로 표현된다. 이후 N개의 각 줄에는 차례대로 각 www.acmicpc.net 아이디어 금메달, 은메달, 동메달 순으로 정렬 후 리스트의 값 만큼 반복 만약 현재 데이터의 금메달, 은메달, 동메달의 갯수가 바로 이전 값과 같다면 grade를 i로 아니라면 i값만 1 증가 현재 국가를 나타내는 정수와 K가 같으면 grade출력 후 반복문 종료 전체 코드 N, K = map(int, input().split()) datas = [[int(x) for x i..
https://www.acmicpc.net/problem/1926 1926번: 그림 어떤 큰 도화지에 그림이 그려져 있을 때, 그 그림의 개수와, 그 그림 중 넓이가 가장 넓은 것의 넓이를 출력하여라. 단, 그림이라는 것은 1로 연결된 것을 한 그림이라고 정의하자. 가로나 세로 www.acmicpc.net 아이디어 bfs/dfs 문제였다. 방향 벡터와 bfs를 사용하여 풀었다. 전체 코드 from collections import deque n, m = map(int, input().split()) paint = [[ int(x) for x in input().split()] for _ in range(n)] visited = [[0]*m for _ in range(n)] def bfs(x, y, pai..
https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 초기에 $n+1$개의 집합 $\{0\}, \{1\}, \{2\}, \dots , \{n\}$이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작 www.acmicpc.net 아이디어 union-find로 풀었다. 시간 초과가 나서 계속 찾아봤는데 input 함수를 sys.stdin.readline으로 변경해주어야 했다.. 전체 코드 import sys input = sys.stdin.readline sys.setrecursionlimit(100000) def find(x): if parents[x] != x: parents[x] ..