본문 바로가기
반응형

Problem Solving239

[BOJ][Python]2667번 풀이 https://www.acmicpc.net/problem/2667 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net from collections import deque import sys ssr = sys.stdin.readline def sol(): global num while q: r,c = q.popleft() for i in range(4): if 0 2022. 7. 4.
[BOJ][Python]5338, 25083번 풀이 https://www.acmicpc.net/problem/5338 5338번: 마이크로소프트 로고 마이크로소프트 로고를 예제 출력처럼 출력하는 프로그램을 작성하시오. www.acmicpc.net print(''' _.-;;-._ '-..-'| || | '-..-'|_.-;;-._| '-..-'| || | '-..-'|_.-''-._|''') 오늘은 정말 오랜만에 아무것도 안하고 푹 쉬었습니다. 오랜만에 낮잠도 좀 자고 운동도 쉬고 게임도 좀 했어요. 딱히 힘들어서 쉬었다기 보다는 꽤 긴 시간 하루도 제대로 쉬었던 적이 없었던 것 같아서 그냥 아무것도 안하고 쉬어봤습니다. 그러다가 문득 실험해보고 싶은게 있어서 안풀었던 입출력 문제들 중 아무거나 한 번 들어가봤습니다. 파이썬같은 경우는 큰따옴표나 작은따옴.. 2022. 7. 3.
[BOJ][Python]2178번 풀이 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net from collections import deque import sys ssr = sys.stdin.readline def sol(): while q: r,c,s = q.popleft() if r == n-1 and c == m-1: return s for i in range(4): if r+dr[i] = n or c+dc[i] = m: continue else: if t[r+dr[i]][c+dc[.. 2022. 7. 2.
[BOJ][Python]2331번 풀이 https://www.acmicpc.net/problem/2331 2331번: 반복수열 첫째 줄에 반복되는 부분을 제외했을 때, 수열에 남게 되는 수들의 개수를 출력한다. www.acmicpc.net a,p = input().split() n = [a] num = {i:0 for i in range(1,236197)} num[int(a)] = 1 tmp = 0 while 1: c = n[-1] for i in c: tmp += int(i)**int(p) n.append(str(tmp)) if num[tmp] == 1: print(len(n[:n.index(str(tmp))])) break else: num[tmp] += 1 tmp = 0 #236,196 : max 확실히 구현은 많이 풀고 시간 투자를 많.. 2022. 7. 1.
[BOJ][Python]1992번 풀이 https://www.acmicpc.net/problem/1992 1992번: 쿼드트리 첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또 www.acmicpc.net import sys ssr = sys.stdin.readline def sol(r,c,l): global ans check = t[r][c] for i in range(r,r+l): for j in range(c,c+l): if t[i][j] != check: ans += '(' sol(r,c,l//2) sol(r,c+l//2,l//2) sol(r+l//2,c,l//2) sol(r+l.. 2022. 7. 1.
[BOJ][Python]14720번 풀이 https://www.acmicpc.net/problem/14720 14720번: 우유 축제 영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후 www.acmicpc.net n = int(input()) m = list(map(int, input().split())) state = 0 ans = 0 for i in m: if i == state: ans += 1 state += 1 if state == 3: state = 0 print(ans) 그렇게 어려운 문제는 아니구요. 다만 왜 그리디인지 잘은 모르겠네요. 문제 접근은 state라는 변수를 만들어서 현재 먹어야 하.. 2022. 6. 30.
[BOJ][Python]1389번 풀이 https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net from collections import deque import sys ssr = sys.stdin.readline def sol(p): visited[p] = True q=deque([]) q.append((p,0)) b_num=0 while q: a = q.popleft() b_num += a[1] for i in edges: if i[0] =.. 2022. 6. 29.
[BOJ][Python]1051번 풀이 https://www.acmicpc.net/problem/1051 1051번: 숫자 정사각형 N×M크기의 직사각형이 있다. 각 칸에는 한 자리 숫자가 적혀 있다. 이 직사각형에서 꼭짓점에 쓰여 있는 수가 모두 같은 가장 큰 정사각형을 찾는 프로그램을 작성하시오. 이때, 정사각형은 행 www.acmicpc.net 개인적으로 해당 문제의 설명이 너무 별로라고 생각해서 제 나름대로 이해가 쉽도록 좀 고쳐보겠습니다. 문제: 1x1 크기의 칸이 세로N개, 가로M개의 형태로 나열되어 하나의 직사각형을 이루고 있으며, 각 칸에는 한 자리 숫자가 적혀 있다. 어떤 정사각형의 꼭짓점이 NxM 직사각형 내부의 숫자가 적혀있는 칸 위에 위치한다고 가정할 때, 꼭짓점이 위치한 칸에 쓰여 있는 수가 모두 같고 넓이가 가장 큰 .. 2022. 6. 29.
[BOJ][Python]1120번 풀이 https://www.acmicpc.net/problem/1120 1120번: 문자열 길이가 N으로 같은 문자열 X와 Y가 있을 때, 두 문자열 X와 Y의 차이는 X[i] ≠ Y[i]인 i의 개수이다. 예를 들어, X=”jimin”, Y=”minji”이면, 둘의 차이는 4이다. 두 문자열 A와 B가 주어진다. 이때, A의 www.acmicpc.net a,b = input().split() ans = 50 for i in range(len(b)-len(a)+1): tmp = 0 for j in range(len(a)): if a[j] != b[i+j]: tmp += 1 if tmp < ans: ans = tmp print(ans) 크게 어려운 문제는 아니지만 구현 문제 특성상 길을 잘못 잡으면 시간 지체가.. 2022. 6. 28.
[BOJ][Python]1780번 풀이 https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한 크기로 자르려고 한다. 만약 종이가 모두 같은 수 www.acmicpc.net import sys ssr = sys.stdin.readline def sol(r,c,l): tmp = p[r][c] for i in range(r,r+l): for j in range(c,c+l): if tmp != p[i][j]: le = l//3 for k in range(3): for h in range(3): sol(r+k*le,c+h*le,le) return if tmp ==.. 2022. 6. 28.
반응형