본문 바로가기

Algorithm475

[파이썬] 백준 1074 : Z (실버1) [파이썬] 백준 1074 : Z (실버1) 1074번: Z 한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을 www.acmicpc.net 문제 풀이 0.방향성 생각 위 예시처럼 n = 3인 경우 43 (7행 1열)을 찾는다고 가정해보자. 0,0에서 시작해서 탐색을 진행한다. 탐색하려는 좌표의 사분면을 찾는다. 그 사분면 기준점으로 이동해서 재귀함수를 호출한다. 1. 전체 코드 import sys sys.setrecursionlimit(10**6) n,row,col = map(int,input().split()) def z(h,w,N): if ro.. 2023. 6. 5.
[파이썬] 백준 1992 : 쿼드트리 (실버1) [파이썬] 백준 1992 : 쿼드트리 (실버1) 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net 문제 풀이 0.방향성 생각 탐색하면서 기준점이랑 다른게 하나라도 나올경우 재귀 호출한다. 괄호의 경우에는 현재 탐색하는 영역에서 기준점과 다른게 하나라도 나올경우 괄호를 열고 탐색하고 괄호를 닫아준다. 0.방향성 생각 1. 전체코드 import sys input = sys.stdin.readline n = int(input()) arr = [] answer = '' for i in range(n): a.. 2023. 6. 5.
[파이썬] 백준 1780 : 종이의 개수 (실버2) [파이썬] 백준 1780 : 종이의 개수 (실버2) 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net 문제 풀이 0.방향성 생각 첫 케이스에서 어떻게 움직일지 규칙을 찾고 하드코딩 해준다. 함수 내에서 조건을 만족하면 재귀호출한다. 1. 전체 코드 import sys input = sys.stdin.readline n = int(input()) arr = [] p,m,z = 0,0,0 for i in range(n): arr.append(list(map(int,input().split()))) def.. 2023. 6. 5.
[파이썬] 백준 2630 : 색종이 만들기 (실버2) [파이썬] 백준 2630 : 색종이 만들기 (실버2) 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 문제 풀이 0.방향성 생각 규칙 찾아주고 첫 번째 케이스만 하드코딩 한 후에 재귀호출해서 풀어주면 된다. 주어진 어레이를 가로 세로 2등분 총 4등분해서 기준점에서 재귀호출을 한다. 1. 전체 코드 import sys input = sys.stdin.readline n = int(input()) arr = [] w,b = 0,0 for i in range(n): arr.append(.. 2023. 6. 5.