Language/C#

·Language/C#
[ 문제 ] 충남대학교 공대 5호관에는 1번부터 N번까지 번호가 매겨진 N개의 강의실이 있다. 학생들은 강의실 예약 시스템을 통해 원하는 강의실을 예약한 후에 이용할 수 있다. 강의실을 예약하기 위해서는 이용하려는 강의실의 번호 k와 이용 시작 시각과 끝 시각 ,s,e를 예약 시스템에 전송해야 한다. 어느 날, 예약 시스템에 M개의 예약 요청이 주어졌다. 예약 요청은 이용 시작 시각 s가 임박한 순으로 주어지고, 이용 시작 시각이 같은 예약은 없다. 예약 시스템은 예약 요청을 순서대로 확인하는데, 어떤 예약이 기존에 같은 강의실에 대해 수락한 예약과 겹치지 않는다면 그 예약을 수락하고 그렇지 않다면 거부한다. 단, 이용 끝 시각과 이용 시작 시각이 같은 두 예약은 겹친 것이 아니다. M개의 예약 요청이 ..
·Language/C#
[ 문제 ] JOI 상점가에서는 포인트 카드 서비스를 실시하고 있다. 각 포인트 카드에는 도장을 찍을 수 있는 칸이 총 2N개 있어, 상품을 구매하면 뽑기를 해서 결과에 따라 '당첨' 또는 '꽝' 도장이 찍힌다. 한 칸에 두 번 이상 도장을 찍을 수는 없다. 2N개 중 N개 이상의 칸에 당첨 도장이 찍힌 포인트 카드는 경품과 교환할 수 있다. 또, 한 칸에 찍힌 도장을 1엔을 내고 다른 도장으로 바꿀 수 있다. JOI 군은 2N개 칸을 다 채운 포인트 카드를 M장 가지고 있다. i번째 포인트 카드에는 A_i개의 당첨 도장과, B_i개의 꽝 도장이 찍혀 있다. JOI 군은 M-1개 이상의 경품을 가지려고 한다. 이에 필요한 비용의 최솟값을 구하라. [ 코드 ] 1. 내 코드 StreamReader sr =..
·Language/C#
[ 문제 ] 고려대학교의 영문 이름은 KOREA UNIVERSITY이다. 영어 알파벳 대문자 K, O, R, E, A로만 이루어진 문자열 S가 주어진다. S에서 0개 이상의 문자를 지웠을 때 “KOREAKOREAKOR” 처럼 ‘K’로 시작하고 각 글자가 ‘K’, ‘O’, ‘R’, ‘E’, ‘A’ 순서로 반복되는 문자열을 만들려고 한다. 이를 KOREA 문자열이라고 하자. 문자열이 주어졌을 때, 0개 이상의 문자를 지워서 만들 수 있는 가장 긴 KOREA 문자열의 길이를 구하여라. [ 코드 ] 1. 내 코드 using System; class MainClass { public static void Main(string[] args) { string S = Console.ReadLine(); int max ..
·Language/C#
[ 문제 ] 2019년 12월, 두 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 작년 ZOAC의 방식은 너무 식상하다고 생각한 성우는 문자열을 보여주는 새로운 규칙을 고안해냈다! 규칙은 이러하다. 그림과 같은 원판에 문자들이 순서대로 적혀있다. 처음 순간에 화살표는 'A'를 가리키고 있다. 원판은 왼쪽 또는 오른쪽으로 돌릴 수 있다. 원판을 한 칸 돌리는 데에는 1의 시간이 소요된다. 화살표가 가리키고 있는 문자를 출력할 수 있다. 문자를 출력하는 데에 걸리는 시간은 없다. 시간이 너무 오래 걸리면 지루해할 ZOAC의 참가자들을 위해 성우는 해당 문자열을 앞에서부터 차례대로 최대한 빠르게 출력하려고 한다. 바쁜 성우를 위하여 해당 문자열을 출력하는 데 걸리는 ..
·Language/C#
[ 문제 ] 준석이는 두 동생을 위해 사탕 가게에서 사탕을 최대한 많이 사 가려고 한다. 사탕 가게에는 N개의 사탕 묶음이 있으며 i번째 사탕 묶음에는 a_i개의 사탕이 있다. 준석이는 정말 부자라 사탕 묶음을 마음껏 살 수 있다. 하지만 준석이가 사간 총 사탕의 개수가 홀수가 되면 두 동생이 사탕을 한 개라도 더 갖기 위해 서로 싸울 것이라 총 짝수 개의 사탕을 가져가려고 한다. 준석이를 위해서 최대로 가져갈 수 있는 사탕의 개수를 구해주자! [ 코드 ] 1. 내 코드 - 배열의 합이 홀수라면 홀수 중 최솟값을 찾아 빼고 만약 그 값이 0이 되면 0으로 값을 초기화한다. StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandard..
·Language/C#
[ 문제 ] 하루에 한 시간 단위로 일을 하거나 일을 쉬어도 된다. 하루에 한 시간 일하면 피로도는 A만큼 쌓이고 일은 B만큼 처리할 수 있다. 만약에 한 시간을 쉰다면 피로도는 C만큼 줄어든다. 단, 피로도가 음수로 내려가면 0으로 바뀐다. 당연히 일을 하지 않고 쉬었기 때문에 처리한 일은 없다. 피로도를 최대한 M을 넘지 않게 일을 하려고 한다. M을 넘기면 일하는데 번아웃이 와서 이미 했던 일들도 다 던져버리고 일을 그만두게 된다. 번아웃이 되지 않도록 일을 할때 하루에 최대 얼마나 일을 할 수 있는지 구해보자. 하루는 24시간이다. [ 코드 ] StreamReader sr = new StreamReader(new BufferedStream(Console.OpenStandardInput())); S..
석영
'Language/C#' 카테고리의 글 목록 (16 Page)