본문 바로가기

BOJ79

백준(BOJ) 10253 헨리(Python) 단순 구현 문제. a와 b를 입력받았을 때 a와 b를 수정하며 1/x 2023. 1. 11.
백준(BOJ) 3078 좋은 친구(Python) 큐로 푼 문제. 이름의 길이에 각각 큐를 만들어놓고 거기에 등수를 집어넣는다. 이때 집어넣기 전 큐가 비어있지 않으면 현재 큐에 있는 등수 중 k 이상 차이나는 등수를 모두 pop해준다. 그러고 나면 큐에 있는 등수들은 모두 현재 집어넣는 등수와 '좋은 친구'인 경우 밖에 없다. 큐의 크기를 ans에 더하고 등수를 해당 큐에 집어넣는 과정을 반복하면 된다. 코드는 다음과 같다. # -*- coding: utf-8 -*- import sys from collections import deque import heapq import bisect import math from itertools import product """ from itertools import combinations from itertoo.. 2023. 1. 7.
백준(BOJ) 1527 금민수의 개수(Python) 브루트포스 문제. 파이썬 itertools 라이브러리의 product 클래스를 사용하면 문자들의 조합을 모두 뽑아낼 수 있다. 10억 이하의 4와 7로 이루어진 수의 개수는 2^9+2^8+2^7+...이므로 브루트포스로 풀어도 안정권에 든다. 모든 수를 찾아보며 A와 B 사이에 있는 지를 판단해주면 되는 문제. product 클래스를 사용하지 않으려면 DFS나 BFS로 하나하나 확인해줘도 될 것이다. 코드는 다음과 같다. # -*- coding: utf-8 -*- import sys from collections import deque import heapq import bisect import math from itertools import product """ from itertools import .. 2023. 1. 7.
백준(BOJ) 25498 핸들 뭘로 하지(Python) 대표 BFS 문제. 1번 노드부터 시작해서 갈 수 있는 노드 중 가장 사전 순으로 뒤에 있는 문자로 이동하면서 ans에 그 문자를 추가해주면 된다. 만약 그 문자를 가진 노드가 2개 이상인 경우 그 문자를 가진 모든 노드에 대해 탐색을 진행해야 한다. 이를 해결하기 위해 한 노드에서 갈 수 있는 노드 중 가장 사전 순으로 뒤에 있는 문자의 노드를 모두 담은 리스트와 현재 문자 길이를 queue에 넣고 빼는 식으로 구현했다. 코드는 다음과 같다. # -*- coding: utf-8 -*- import sys from collections import deque import heapq import bisect """ import math from itertools import combinations from.. 2022. 8. 23.
백준(BOJ) 16236 아기 상어(Python) BFS 문제. 아기 상어가 있는 위치로부터 같은 거리에 있는 물고기들 중 먹을 수 있는 물고기의 x,y좌표를 모두 저장한 뒤, 물고기의 좌표를 x,y좌표 순으로 오름차순 정렬해서 첫 번째 위치로 상어가 이동해 물고기를 먹는다. 만약 해당 거리에 물고기가 없다면 거리를 1 증가시켜 다시 물고기를 탐색한다. 나머지는 문제에서 주어진 대로 처리했다. 코드는 다음과 같다. # -*- coding: utf-8 -*- import sys from collections import deque import heapq import bisect """ import math from itertools import combinations from itertools import combinations_with_replaceme.. 2022. 8. 16.
백준(BOJ) 1424 새 앨범(Python) 구현 문제. 먼저 한 CD에 최대로 들어갈 수 있는 노래의 개수를 구해야 한다. 노래 사이에는 1초의 공백이 있기 때문에 CD의 길이를 (노래의 길이+1)로 나눈 몫을 구하고, CD의 길이를 (노래의 길이+1)로 나눈 나머지가 노래의 길이와 같다면 몫에 1을 더한다. 이 값이 한 CD에 최대로 들어갈 수 있는 노래의 개수이다. 이때 고려해줄 부분은, CD 하나에 최대로 들어갈 수 있는 노래의 개수보다 전체 노래의 개수가 더 작을 수 있다는 점이다. 따라서 둘 중 더 작은 값을 CD 하나에 최대로 들어갈 수 있는 노래의 개수로 설정한다. 만약 이 값이 13의 배수라면, 이 값에서 -1을 한 값이 한 CD에 최대로 들어갈 수 있는 노래의 개수이다. 그렇게 한 CD에 최대로 들어갈 수 있는 노래의 개수를 구한.. 2022. 8. 10.