본문 바로가기

분류 전체보기

(41)
2024.10.4 백준(Python) 1920 수 찾기 수 찾기  시간 제한메모리 제한 제출정답맞힌 사람정답 비율1 초128 MB286734906675989830.360%문제N개의 정수 A[1], A[2], …, A[N]이 주어져 있을 때, 이 안에 X라는 정수가 존재하는지 알아내는 프로그램을 작성하시오.입력첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들이 A안에 존재하는지 알아내면 된다. 모든 정수의 범위는 -231 보다 크거나 같고 231보다 작다.출력M개의 줄에 답을 출력한다. 존재하면 1을, 존재하지 않으면 0을 출력한다.예제 입력 1 54 1 5 2 351..
2024.9.18 백준(Python) 1026 보물 보물  문제옛날 옛적에 수학이 항상 큰 골칫거리였던 나라가 있었다. 이 나라의 국왕 김지민은 다음과 같은 문제를 내고 큰 상금을 걸었다.길이가 N인 정수 배열 A와 B가 있다. 다음과 같이 함수 S를 정의하자.S = A[0] × B[0] + ... + A[N-1] × B[N-1]S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안 된다.S의 최솟값을 출력하는 프로그램을 작성하시오.입력첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거나 같은 음이 아닌 정수이다.출력첫째 줄에 S의 최솟값을 출력한다.예제 입력 1 ..
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