알고리즘 공부 33

NYPC 2023 Round 1: 3번문제

메이플스토리 새로운 직업 고르기 NYPC 2023 · Round 1 메이플스토리에는 여러 가지 모험가 직업들이 있다. 메이플스토리의 팬인 당신은 여러 모험가 캐릭터를 키워봤다. 이제 안 해본 모험가 캐릭터를 키워보려고 한다. 메이플스토리에 존재하는 모든 모험가 직업과, 당신이 키워본 모험가 직업이 주어졌을 때 당신이 새로 키워볼 수 있는 모험가 직업을 모두 나열하는 프로그램을 작성하시오. 입력 형식 첫 줄에 메이플스토리에 존재하는 모든 모험가 직업의 수 N이 주어진다. (1≤N≤150) 이어지는 N 개의 줄에는 모험가 직업이 주어진다. 모험가 직업은 영어 알파벳만으로 이루어진 길이 11 이상 1515 이하인 문자열이다. 같은 모험가 직업이 두 번 이상 나오는 경우는 없다. 대문자와 소문자는 구별된다. 예..

코드업 2039:시정표 작성하기(C)

문제 설명 신입생 광곽이는 학교 시정표가 적응이 되지 않아 시정표를 작성하는 프로그램을 만드려 한다. 1교시 시작하는 시, 1교시 시작하는 분, 한 교시의 길이(분), 쉬는시간의 길이(분), 총 교시 수, n 교시 후 점심시간, 점심시간의 길이(분)가 주어질 때 시정표를 작성하시오. (단, n교시와 점심시간 사이, 그리고 점심시간과 n+1교시 사이에는 쉬는시간이 없다.) 입력 1교시 시작하는 시, 1교시 시작하는 분, 한 교시의 길이(분), 쉬는 시간의 길이(분), 총 교시 수, n 교시 후 점심시간, 점심시간의 길이(분) 가 입력된다. 최종 출력되는 시간은 24시를 넘지 않으며, 한 교시 및 쉬는 시간의 길이도 60분 미만이다. 점심 시간은 100분 이하이다. 광곽은 좋은 학교라서 수업이 일찍 끝나더라..

코드업 1981:파일 입력 처리하기(C)

문제 설명 우리는 지금까지 키보드로 입력하는 방식인 "표준 입출력"을 사용하여 왔다. 이번에는 파일을 읽어 오도록 하자. secret.dic 파일을 읽어와서 그 내용을 화면에 출력하여 보자. 이 문제를 푼 사람 말에 의하면, 이 파일 속에는 정보 올림피아드 상위권으로 올라 갈 수 있는 비법이 들어 있다고 한다. 금지 키워드 : freopen 입력 secret.dic 파일을 읽어와서. 파일의 내용을 처음부터 끝까지 그대로 출력한다. 파일을 읽어 오는 방법은, FILE *fi = fopen("secret.dic", "r"); 명령을 이용하면 된다. (freopen명령은 사용할 수 없다.) 출력 파일의 내용을 그대로 화면에 출력한다. (입력, 출력 예시 없음) 나의 코드 #include int main() {..

코드업 1510:홀수 마방진(C)

문제 설명 마방진(magic square)이란 가로, 세로, 대각선의 합이 같은 사각형을 말한다. 홀수 n을 입력으로 받아 n*n 홀수 마방진을 만들어 보자. 만드는 방법은 여러가지 방법이 있지만, 아래와 같은 방법을 이용하여 구현해보자. 구현 방법: 1. 시작은 첫 행, 한 가운데 열에 1을 둔다. 2. 행을 감소, 열을 증가하면서 순차적으로 수를 넣어간다. 3. 행은 감소하므로 첫 행보다 작아지는 경우에는 마지막 행으로 넘어간다. 4. 열은 증가하므로 마지막 열보다 커지는 경우에는 첫 열로 넘어간다. 5. 넣은 수가 n의 배수이면 행만 증가한다. 열은 변화없음. 입력 마방진의 크기인 n이 입력된다.(n은 50보다 작은 홀수인 자연수) 출력 위의 방법대로 크기가 n인 홀수 마방진을 출력한다. 입력 예시..

코드업 1640:악성 프로그램 삭제하기(C)

문제 설명 현준이는 컴퓨터 인터넷이 느린 것을 알고, 제어판에 들어가 보니 여러 악성 프로그램이 설치 되어 있었다. 현준이 컴퓨터 인터넷이 빨라지도록 도와주기 위해 제어판에 있는 프로그램을 입력하면 악성 프로그램과, 컴퓨터의 위험도를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 프로그램이 입력될 갯수 정수 n이 입력된다.(1

코드업 1602:절대값 함수(C)

문제 설명 절대값 함수를 만들어 봅시다. 입력으로 정수가 들어오면 정수로 결과를 출력하고, 실수가 들어오면 실수로 결과를 출력한다. 단, 소수점 이하에 불필요한 0은 입력되지 않는다. [리턴 타입] ABS( [인자] ) { // ..코드.. } int main() { // 명령 및 함수 호출 } 입력 정수 또는 실수 n이 입력된다. (n은 정수 또는 실수) 출력 입력된 n의 절대값을 출력한다. 실수값일 경우 불필요한 0을 출력하지 않는다. 입력 예시 -2.56 출력 예시 2.56 나의 코드 #include void ABS(double n) { if (n < 0) n = -n; if ((int)n == n) printf("%d", (int)n);// 정수면 int로 출력 else printf("%g", n..

코드업 1291:바이러스 백신(C)

문제 설명 최근 무서운 감기 바이러스들이 유행처럼 번지고 있다. 최근 유행인 바이러스는 모두 3가지 종류로 각 바이러스들은 모두 3000이하의 자연수로 표현된다. 여러분은 3가지 바이러스 감염을 예방할 수 있는 백신을 개발해야 한다. 백신도 3000 이하의 자연수로 표현되며, 만약 바이러스의 값이 백신의 값으로 나누어 떨어지면 백신으로 바이러스 감염을 예방할 수 있다. 백신의 개발비는 백신의 숫자 값이 작을수록 비싸다. 즉 백신 3과 백신 2가 있다면 백신 3의 가격이 더 저렴하므로 개발하는데 이득이다. 3가지 바이러스 감염을 예방할 수 있는 가장 싼 백신을 개발하는 프로그램을 작성하시오. 입력 세 정수값이 오름차순으로 입력된다. 각 입력 값은 바이러스 번호를 의미하며, 1~3000의 정수이다. 출력 가..

코드업 2009:아메리카노(C)

문제 설명 학교 앞 카페에서 아메리카노를 한 잔을 사면 쿠폰을 한 장 받을 수 있다. 이 쿠폰은 카페에서 요구하는 필요 개수(N)를 채우면 아메리카노 한잔으로 다시 교환 할 수 있다. 그런데 이 가게는 특이하게도 쿠폰을 모아 아메리카노로 교환할 때에도 쿠폰을 또 한 장 준다. 현재 영일이가 가진 쿠폰의 개수(K)와 카페에서 요구하는 필요 쿠폰 개수(N)가 입력되면, 최대한 먹을 수 있는 아메리카노의 개수를 계산하는 프로그램을 작성하시오. 입력 현재 영일이가 가진 쿠폰 개수(K)와 카페에서 요구하는 필요 쿠폰 개수(N)이 공백으로 구분되어 입력된다. (1= need ) { cnt += remain / need; remain = remain % need + remain / need; } printf("%d"..

코드업 2603:성적 그래프 출력하기(C)

문제 설명 CS고등학교에서는 지필 평가에서 10개의 과목을 평가한다. 성적 처리를 맡은 정보 선생님은 올해부터 자신의 성적을 막대 그래프로 나타내기로 결정했다. 하지만 일일이 그래프를 그리기에는 시간이 너무 걸리므로 이를 프로그램화 하려고 한다. 10개의 과목 점수가 입력되면 막대그래프로 출력하는 프로그램을 작성하시오. 10점당 #을 하나씩 추가해서 출력하고, 10점 미만은 #을 출력하지 않는다. 즉, 100점은 #이 10개이다. 그래프 형식은 입출력 예시를 참고한다. 입력 10과목의 점수가 공백으로 구분되어 입력된다. 각 과목의 점수는 0~100점이다. 출력 입력된 점수에 따라 입출력예시를 참고하여 막대 그래프를 출력한다. 입력 예시 25 20 30 40 56 79 8 15 90 52 출력 예시 # #..

코드업 2318:산딸기 정렬1(C)

문제 설명 비버는 산딸기를 딴 후, 특별한 방법으로 정렬하고 다양한 레시피로 조리하여 먹는다. 비버가 산딸기를 정렬하고 조리하는 규칙은 다음과 같다. - 특정 크기(n)의 산딸기는 생으로 먹는다. - 특정 크기(n)보다 큰 산딸기는 파이로, 특정 크기(n)보다 작은 산딸기는 쥬스로 만들어 먹는다. - 산딸기는 크기에 따라 쥬스, 생 산딸기, 파이용 순으로 정렬한다. - 같은 용도의 산딸기는 딴 순서대로 정렬한다. 산딸기의 개수(m), 각 산딸기의 크기(a1, a2, ... , am), 특정 크기(n)이 주어질 때, 산딸기를 정렬한 결과를 출력해보자. 입력 첫 번째 줄에 산딸기의 개수(m)가 입력된다. 두 번째 줄에 각 산딸기의 크기(ai)가 스페이스로 구분되어 입력된다. 세 번째 줄에 특정 크기(n)가 ..