본문 바로가기

백준

(30)
2024.9.10 백준(Python) 1343 폴리오미노 폴리오미노   문제민식이는 다음과 같은 폴리오미노 2개를 무한개만큼 가지고 있다. AAAA와 BB이제 '.'와 'X'로 이루어진 보드판이 주어졌을 때, 민식이는 겹침없이 'X'를 모두 폴리오미노로 덮으려고 한다. 이때, '.'는 폴리오미노로 덮으면 안 된다.폴리오미노로 모두 덮은 보드판을 출력하는 프로그램을 작성하시오.입력첫째 줄에 보드판이 주어진다. 보드판의 크기는 최대 50이다.출력첫째 줄에 사전순으로 가장 앞서는 답을 출력한다. 만약 덮을 수 없으면 -1을 출력한다.예제 입력 1 XXXXXX예제 출력 1 AAAABB예제 입력 2 XX.XX예제 출력 2 BB.BB예제 입력 3 XXXX....XXX.....XX예제 출력 3 -1예제 입력 4 X예제 출력 4 -1예제 입력 5 XX.XXXXXXXXXX....
2024.9.6 백준(Python) 1966 프린터 큐 프린터 큐 문제여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다. 하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다.현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다.나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 않다면 바로 인쇄를 한다.예를 들어 Queue에 4개의 문서(A B C D)가 있고, 중요도가 ..
2024.9.4 백준(Python) 1476 날짜 계산 날짜 계산 문제준규가 사는 나라는 우리가 사용하는 연도와 다른 방식을 이용한다. 준규가 사는 나라에서는 수 3개를 이용해서 연도를 나타낸다. 각각의 수는 지구, 태양, 그리고 달을 나타낸다.지구를 나타내는 수를 E, 태양을 나타내는 수를 S, 달을 나타내는 수를 M이라고 했을 때, 이 세 수는 서로 다른 범위를 가진다. (1 ≤ E ≤ 15, 1 ≤ S ≤ 28, 1 ≤ M ≤ 19)우리가 알고있는 1년은 준규가 살고있는 나라에서는 1 1 1로 나타낼 수 있다. 1년이 지날 때마다, 세 수는 모두 1씩 증가한다. 만약, 어떤 수가 범위를 넘어가는 경우에는 1이 된다.예를 들어, 15년은 15 15 15로 나타낼 수 있다. 하지만, 1년이 지나서 16년이 되면 16 16 16이 아니라 1 16 16이 된다..
2024.9.4 백준(Python) 1427 소트인사이드 소트인사이드  문제배열을 정렬하는 것은 쉽다. 수가 주어지면, 그 수의 각 자리수를 내림차순으로 정렬해보자.입력첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다.출력첫째 줄에 자리수를 내림차순으로 정렬한 수를 출력한다.예제 입력 1 2143예제 출력 1 4321예제 입력 2 999998999예제 출력 2 999999998예제 입력 3 61423예제 출력 3 64321예제 입력 4 500613009예제 출력 4 965310000 정답 코드# 사용자로부터 입력을 받습니다.number = input()# 입력받은 숫자를 문자열로 변환한 뒤, 각 숫자를 리스트의 원소로 변환합니다.num_list = list(map(str, str(number)))# 리스트를..
2024.7.22 백준(Python) 2563 색종이 정답 코드# 100x100 배열을 0으로 초기화white = [[0] * 100 for i in range(100)]# 사각형의 개수를 입력받음R = int(input())# R번 반복하여 각 사각형의 위치를 입력받고, 해당 위치의 10x10 영역을 1로 설정for _ in range(R): # 사각형의 시작 위치 (row, col)를 입력받음 row, col = map(int, input().split()) # 10x10 크기의 영역을 1로 설정 for i in range(row, row + 10): for j in range(col, col + 10): white[i][j] = 1# 1의 개수를 세기 위한 변수 초기화result = 0#..
2024.7.21 백준(Python) 10798 세로 읽기 정답 코드# 빈 리스트를 생성하여 단어들을 저장할 준비를 합니다.word_list = []# 가장 긴 단어의 길이를 저장할 변수를 초기화합니다.max_len = 0# 5개의 단어를 입력받습니다.for i in range(5): # 입력받은 단어를 리스트에 추가합니다. word_list.append(input()) # 현재 단어의 길이가 max_len보다 크면, max_len을 갱신합니다. if max_len
2024.7.20 백준(Python) 25206 너의 평점은 너의 평점은 문제인하대학교 컴퓨터공학과를 졸업하기 위해서는, 전공평점이 3.3 이상이거나 졸업고사를 통과해야 한다. 그런데 아뿔싸, 치훈이는 깜빡하고 졸업고사를 응시하지 않았다는 사실을 깨달았다!치훈이의 전공평점을 계산해주는 프로그램을 작성해보자.전공평점은 전공과목별 (학점 × 과목평점)의 합을 학점의 총합으로 나눈 값이다.인하대학교 컴퓨터공학과의 등급에 따른 과목평점은 다음 표와 같다.A+4.5A04.0B+3.5B03.0C+2.5C02.0D+1.5D01.0F0.0P/F 과목의 경우 등급이 P또는 F로 표시되는데, 등급이 P인 과목은 계산에서 제외해야 한다.과연 치훈이는 무사히 졸업할 수 있을까?입력20줄에 걸쳐 치훈이가 수강한 전공과목의 과목명, 학점, 등급이 공백으로 구분되어 주어진다.출력치훈이의 전..
2024.7.20 백준(Python) 1316 그룹 단어 체커 그룹 단어 체커 문제그룹 단어란 단어에 존재하는 모든 문자에 대해서, 각 문자가 연속해서 나타나는 경우만을 말한다. 예를 들면, ccazzzzbb는 c, a, z, b가 모두 연속해서 나타나고, kin도 k, i, n이 연속해서 나타나기 때문에 그룹 단어이지만, aabbbccb는 b가 떨어져서 나타나기 때문에 그룹 단어가 아니다.단어 N개를 입력으로 받아 그룹 단어의 개수를 출력하는 프로그램을 작성하시오.입력첫째 줄에 단어의 개수 N이 들어온다. N은 100보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 단어가 들어온다. 단어는 알파벳 소문자로만 되어있고 중복되지 않으며, 길이는 최대 100이다.출력첫째 줄에 그룹 단어의 개수를 출력한다.예제 입력 1 3happynewyear예제 출력 1 3예제 ..