Github & Portfolio
Total(206)
-
[백준-5525] IOIOI / Python
5525번: IOIOI 첫째 줄에 N이 주어진다. 둘째 줄에는 S의 길이 M이 주어지며, 셋째 줄에 S가 주어진다. (1 ≤ N ≤ 1,000,000, 2N+1 ≤ M ≤ 1,000,000) www.acmicpc.net import sys n = int(sys.stdin.readline()) m = int(sys.stdin.readline()) s = sys.stdin.readline() answer, pattern, i = 0, 0, 1 while i < m - 1: if s[i - 1] == "I" and s[i] == "O" and s[i + 1] == "I": pattern += 1 if pattern == n: answer += 1 pattern -= 1 i += 1 else: pattern =..
-
[백준-2667] 단지번호붙이기 / Python
2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net from collections import deque n = int(input()) graph = [] for _ in range(n): graph.append(list(map(int, input()))) answer = [] dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(x, y): queue = deque() queue.append((x, y)) graph[x][y] = 0 cnt = 0 while queue: x, y = ..
-
[백준-2630] 색종이 만들기 / Python
2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net import sys n = int(sys.stdin.readline()) paper = [list(map(int, sys.stdin.readline().split())) for _ in range(n)] white, blue = 0, 0 def divide(n, x, y): global white, blue check = paper[x][y] for i in range(x, x + n): for j in range(y, y + n): ..
-
[2021-05-25] Today I Learned
👉 Problem Solving 백준 6문제 1074 - Z 1620 - 나는야 포켓몬 마스터 이다솜 1676 - 팩토리얼 0의 개수 1780 - 종이의 개수 1927 - 최소 힙 1992 - 쿼드트리 👉 회고 오랜만에 알고리즘 문제를 여러 개 집중해서 풀었다. 재귀 문제를 정말 오랜만에 접해서 풀었는데 좀 더 익숙해질 수 있도록 여러 번 풀어봐야겠다.. 아직은 헷갈리는 부분이 있다.😂
-
[백준-1992] 쿼드트리 / Python
1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net import sys n = int(sys.stdin.readline()) data = [list(map(int, sys.stdin.readline().strip())) for _ in range(n)] def quadtree(n, x, y): check = data[x][y] for i in range(x, x + n): for j in range(y, y + n): if check != data[i][j]: print("(", end="") qua..
-
[백준-1927] 최소 힙 / Python
1927번: 최소 힙 첫째 줄에 연산의 개수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 자연수라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net import heapq import sys n = int(sys.stdin.readline()) q = [] for _ in range(n): num = int(sys.stdin.readline()) if not q and num == 0: print(0) else: if num != 0: heapq.heappush(q, num) else: print(heapq.heappop(q)) 해설 간단한 우선순위 큐 문제였다!