분류 전체보기
-
문제 Si에 시작해 Ti에 끝나는 N개의 수업이 주어질 때, 최소의 몇 개의 강의실이 필요한가? 수업이 끝난 직후에 다른 수업을 시작할 수 있다. 1
[백준] 11000 강의실 배정문제 Si에 시작해 Ti에 끝나는 N개의 수업이 주어질 때, 최소의 몇 개의 강의실이 필요한가? 수업이 끝난 직후에 다른 수업을 시작할 수 있다. 1
2023.10.30 -
문제 패턴은 알파벳 소문자 여러 개와 별표(*)로 이루어진 문자열이다. 파일 이름이 패턴에 일치하려면, 패턴에 있는 별표를 알파벳 소문자로 이루어진 임의의 문자열로 변환해 파일 이름과 같게 만들 수 있어야 한다. 별표는 빈 문자열로 바꿀 수도 있다. 예를 들어, 'abcd', 'ad', 'anestonestod'은 모두 'a*d'와 일치한다. 패턴과 파일 이름이 모두 주어졌을 때 각각의 파일 이름이 패턴과 일치하는지 아닌지 구하기 1
[백준] 9996 한국이 그리울 땐 서버에 접속하지문제 패턴은 알파벳 소문자 여러 개와 별표(*)로 이루어진 문자열이다. 파일 이름이 패턴에 일치하려면, 패턴에 있는 별표를 알파벳 소문자로 이루어진 임의의 문자열로 변환해 파일 이름과 같게 만들 수 있어야 한다. 별표는 빈 문자열로 바꿀 수도 있다. 예를 들어, 'abcd', 'ad', 'anestonestod'은 모두 'a*d'와 일치한다. 패턴과 파일 이름이 모두 주어졌을 때 각각의 파일 이름이 패턴과 일치하는지 아닌지 구하기 1
2023.10.26 -
문제 N개의 참인 명제들이 주어졌을 때, 증명될 수 있는 명제 모두 구하기 단, "P이면 P이다"와 같이 전건과 후건이 같은 경우는 제외한다. 명제들은 알파벳 대소문자 한글자를 사용한다. 명제를 출력할 때는 전건 순으로 정렬하고, 전건이 같은 경우에는 후건 순으로 정렬한다. 1 C 는 결국 그래프의 연결관계와 같으므로 연결되었는지를 확인하면 된다. 알파벳 순서대로 bfs를 통해 연결된 모든 다른 알파벳을 조사한다. 시간 단축 Tip num2alpha에 알파벳을 대문자와 소문자 순서로 저장한다. 알파벳을 숫자로 변환하는 함수를 이용해 alpha2num 딕셔너리를 만든다. from collections import deque # 알파벳을 숫자로 변환 A:0, B:1, ..., Z:25, a:26, ..., ..
[백준] 2224 명제 증명문제 N개의 참인 명제들이 주어졌을 때, 증명될 수 있는 명제 모두 구하기 단, "P이면 P이다"와 같이 전건과 후건이 같은 경우는 제외한다. 명제들은 알파벳 대소문자 한글자를 사용한다. 명제를 출력할 때는 전건 순으로 정렬하고, 전건이 같은 경우에는 후건 순으로 정렬한다. 1 C 는 결국 그래프의 연결관계와 같으므로 연결되었는지를 확인하면 된다. 알파벳 순서대로 bfs를 통해 연결된 모든 다른 알파벳을 조사한다. 시간 단축 Tip num2alpha에 알파벳을 대문자와 소문자 순서로 저장한다. 알파벳을 숫자로 변환하는 함수를 이용해 alpha2num 딕셔너리를 만든다. from collections import deque # 알파벳을 숫자로 변환 A:0, B:1, ..., Z:25, a:26, ..., ..
2023.10.26 -
문제 NxN 크기의 땅에 나라가 하나씩 존재하고, 살고 있는 인구가 칸마다 다르다. 인접한 나라 사이에 인구 이동이 없을 때까지 다음의 방식으로 인구 이동이 진행된다. 1) 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면 두 나라가 공유하는 국경선을 오픈한다, 2) 위 조건에 의해 열어야 하는 국경선이 모두 열리면 인구 이동을 시작한다. 3) 국경선이 열려 있는 인접한 칸은 '연합'을 이루게 되고, 연합을 이루는 각 칸의 인구수는 (연합의 인구 수) / (연합을 이루는 칸의 개수) 가 된다. (편의상 소수점은 버린다.) 4) 연합을 해체하고 모든 국경선을 닫는다. 각 나라의 인구수가 주어졌을 때, 인구 이동이 며칠 동안 발생하는지 구하기 1
[백준] 16234 인구이동문제 NxN 크기의 땅에 나라가 하나씩 존재하고, 살고 있는 인구가 칸마다 다르다. 인접한 나라 사이에 인구 이동이 없을 때까지 다음의 방식으로 인구 이동이 진행된다. 1) 국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면 두 나라가 공유하는 국경선을 오픈한다, 2) 위 조건에 의해 열어야 하는 국경선이 모두 열리면 인구 이동을 시작한다. 3) 국경선이 열려 있는 인접한 칸은 '연합'을 이루게 되고, 연합을 이루는 각 칸의 인구수는 (연합의 인구 수) / (연합을 이루는 칸의 개수) 가 된다. (편의상 소수점은 버린다.) 4) 연합을 해체하고 모든 국경선을 닫는다. 각 나라의 인구수가 주어졌을 때, 인구 이동이 며칠 동안 발생하는지 구하기 1
2023.10.24 -
문제 NxN 격자에 M개의 지뢰가 숨겨져 있다. 격자판의 어느 지점을 선택했을 때 지뢰가 있으면 플레이어가 진다. 지뢰가 없는 지점을 선택하면 인접한 8개의 칸에 지뢰가 몇 개 있는 지 0-8 사이의 숫자로 알려준다. 일부가 플레이된 게임의 정보가 주어질 때, 해당하는 격자 출력하기 온점(.)은 지뢰가 없는 지점, 별(*)은 지뢰가 있는 지점, 이미 열린 칸은 영소문자 x로, 열리지 않은 칸은 온점(.)으로 표시한다. 만약 지뢰가 있는 칸이 열렸다면 지뢰있는 모든 칸이 별표(*)로 표시되고 다른 지점들은 온점(.)이어야 한다. 1
[백준] 4096 지뢰찾기문제 NxN 격자에 M개의 지뢰가 숨겨져 있다. 격자판의 어느 지점을 선택했을 때 지뢰가 있으면 플레이어가 진다. 지뢰가 없는 지점을 선택하면 인접한 8개의 칸에 지뢰가 몇 개 있는 지 0-8 사이의 숫자로 알려준다. 일부가 플레이된 게임의 정보가 주어질 때, 해당하는 격자 출력하기 온점(.)은 지뢰가 없는 지점, 별(*)은 지뢰가 있는 지점, 이미 열린 칸은 영소문자 x로, 열리지 않은 칸은 온점(.)으로 표시한다. 만약 지뢰가 있는 칸이 열렸다면 지뢰있는 모든 칸이 별표(*)로 표시되고 다른 지점들은 온점(.)이어야 한다. 1
2023.10.24 -
문제 작업 N개와 각 작업마다 걸리는 시간이 정수로 주어진다. K번 작업은 K-1번 이하의 작업 중 선행 관계의 작업을 가질 수도 있다. 그 때 모든 작업을 완료하기 위한 최소 시간 구하기 3
[백준] 2056 작업문제 작업 N개와 각 작업마다 걸리는 시간이 정수로 주어진다. K번 작업은 K-1번 이하의 작업 중 선행 관계의 작업을 가질 수도 있다. 그 때 모든 작업을 완료하기 위한 최소 시간 구하기 3
2023.10.23