전체 글74 [백준] 16953: A→B python 구현 / Greedy, BFS 문제 정수 A를 B로 바꾸려고 한다. 가능한 연산은 다음과 같은 두 가지이다. 2를 곱한다. 1을 수의 가장 오른쪽에 추가한다. A를 B로 바꾸는데 필요한 연산의 최솟값을 구해보자. 풀이 숨바꼭질 문제들( 숨바꼭질, 숨바꼭질3 )과 매우 유사함 ! BFS로 풀면 된다. 주의 ! A, B (1 ≤ A < B ≤ 109) 를 잘 지키자. CODE from collections import deque A, B = map(int, input().split()) def bfs(n): queue = deque() queue.append((n, 0)) while queue: n, time = queue.popleft() ntime = time + 1 for i in range(2): if not i: num = n .. 2023. 4. 12. [백준] 2638: 치즈 python 구현 / BFS 문제 N×M의 모눈종이 위에 아주 얇은 치즈가 과 같이 표시되어 있다. 단, N 은 세로 격자의 수이고, M 은 가로 격자의 수이다. 이 치즈는 냉동 보관을 해야만 하는데 실내온도에 내어놓으면 공기와 접촉하여 천천히 녹는다. 그런데 이러한 모눈종이 모양의 치즈에서 각 치즈 격자(작 은 정사각형 모양)의 4변 중에서 적어도 2변 이상이 실내온도의 공기와 접촉한 것은 정확히 한시간만에 녹아 없어져 버린다. 따라서 아래 모양과 같은 치즈(회색으로 표시된 부분)라면 C로 표시된 모든 치즈 격자는 한 시간 후에 사라진다. ... 이하 https://www.acmicpc.net/problem/2638 2638번: 치즈 첫째 줄에는 모눈종이의 크기를 나타내는 두 개의 정수 N, M (5 ≤ N, M ≤ 100)이 주.. 2023. 4. 12. [백준] 14500: 테트로미노 python 구현 문제 폴리오미노란 크기가 1×1인 정사각형을 여러 개 이어서 붙인 도형이며, 다음과 같은 조건을 만족해야 한다. 정사각형은 서로 겹치면 안 된다. 도형은 모두 연결되어 있어야 한다. 정사각형의 변끼리 연결되어 있어야 한다. 즉, 꼭짓점과 꼭짓점만 맞닿아 있으면 안 된다. 정사각형 4개를 이어 붙인 폴리오미노는 테트로미노라고 하며, 다음과 같은 5가지가 있다. 아름이는 크기가 N×M인 종이 위에 테트로미노 하나를 놓으려고 한다. 종이는 1×1 크기의 칸으로 나누어져 있으며, 각각의 칸에는 정수가 하나 쓰여 있다. 테트로미노 하나를 적절히 놓아서 테트로미노가 놓인 칸에 쓰여 있는 수들의 합을 최대로 하는 프로그램을 작성하시오. 테트로미노는 반드시 한 정사각형이 정확히 하나의 칸을 포함하도록 놓아야 하며, 회.. 2023. 4. 11. [백준] 1522: 문자열 교환 python 구현 / String 문제 a와 b로만 이루어진 문자열이 주어질 때, a를 모두 연속으로 만들기 위해서 필요한 교환의 회수를 최소로 하는 프로그램을 작성하시오. 이 문자열은 원형이기 때문에, 처음과 끝은 서로 인접해 있는 것이다. 예를 들어, aabbaaabaaba이 주어졌을 때, 2번의 교환이면 a를 모두 연속으로 만들 수 있다. 풀이 a의 개수를 세고 a의 개수만큼 slicing한다 슬라이싱한 외부와 바꿔가며 완전 a가 되기 위한 최소 개수를 확인한다. 이후 슬라이딩 윈도우 방식으로 한 칸 씩 옮겨가며 최소개수를 비교한다. CODE import re import copy o_string = input() # a의 개수를 세고 len_a = len(re.findall(r'a', o_string)) start = 0 min_.. 2023. 4. 11. 이전 1 2 3 4 5 6 7 8 ··· 19 다음