[BOJ] 13458번: 시험 감독
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/13458 13458번: 시험 감독 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000) www.acmicpc.net 1. 문제 설명 총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다. 감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 C명이다. 각각의 시험장에 총감독관은..
[BOJ] 11723번: 집합
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/11723 11723번: 집합 첫째 줄에 수행해야 하는 연산의 수 M (1 ≤ M ≤ 3,000,000)이 주어진다. 둘째 줄부터 M개의 줄에 수행해야 하는 연산이 한 줄에 하나씩 주어진다. www.acmicpc.net 1. 문제 설명 비어있는 공집합 S가 주어졌을 때, 아래 연산을 수행하는 프로그램을 작성하시오. add x: S에 x를 추가한다. (1 ≤ x ≤ 20) S에 x가 이미 있는 경우에는 연산을 무시한다. remove x: S에서 x를 제거한다. (1 ≤ x ≤ 20) S에 x가 없는 경우에는 연산을 무시한다. check x: S에 x가 있으면 1을, 없으면 0을 출력한다. (1 ≤ x ≤ 20) toggle x: S에 x가 ..
[BOJ] 25327번: 다중 항목 선호도 조사(Large)
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/25327 25327번: 다중 항목 선호도 조사 (Large) n명의 학생에게 다음과 같이 선호도를 조사하였다. 각 학생은 아래 세 가지 조사 항목 각각에 대하여 반드시 1가지를 선택해야 한다. 좋아하는 과목(subject)에 'kor', 'eng', 'math' 중 하나를 선택 좋아 www.acmicpc.net 1. 문제 설명 n(n명의 학생)이 주어진다. 각 학생은 세 가지 항목 각각에 대해 반드시 1가지를 선택한다. n명 학생의 선호도에 대하여 m개의 질의를 순서대로 처리한다. 질의 형식은 'subject fruit color'이다. subject은 'kor', 'eng', 'math', '-' 중 하나이다. fruit은 'apple..
[BOJ] 17466번: N! mod P(1)
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/17466 17466번: N! mod P (1) 양의 정수 N과, N보다 큰 소수 P가 주어질 때, N!을 P로 나눈 나머지를 구하여라. www.acmicpc.net 1. 문제 설명 양의 정수 N과, N보다 큰 소수 P가 주어질 때, N!을 P로 나눈 나머지를 구하여라. 2. 접근 방식 모듈러 연산 특징을 활용하여 풀었다. A+B%C = ((A%C) + (B%C)) % C A-B%C = ((A%C) - (B%C)) % C A*B%C = ((A%C) * (B%C)) % C 언제 공부했더라.. 무튼 기억이 났다 ㅎ...... 3. 주석 달기 (변수 설명, 각 줄마다 문장으로 설명, 함수 설명) import sys input = sys.stdi..
[boj] 14501번: 퇴사
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 1. 문제 설명 백준이는 퇴사를 하려고 한다. 오늘부터 N+1일째 되는 날 퇴사를 하기 위해서 남은 N일 동안 최대한 많은 상담을 하려고 한다. 최대 수익을 구하라. 2. 접근 방식 dp로 접근했다. dp = new int[n+1]로 초기화해서 N+1일째 되는 날까지 값을 갱신해준다. 각 0일부터 N일까지 반복하면서 '현재 요일까지 벌어들인 수익 + 현재 상담을 시작해서 끝나는 날에 받는 수익' 과 '끝나는 날에 벌어들인 수익'을 비교한다. for(int i = 0; i < n; i++) for(int j = i + arr[..
[boj] 13975번: 파일 합치기 3
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/13975 13975번: 파일 합치기 3 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T개의 테스트 데이터로 이루어져 있는데, T는 입력의 맨 첫 줄에 주어진다.각 테스트 데이터는 두 개의 행으로 주어지는데, www.acmicpc.net 1. 문제 설명 소설가인 김대전은 소설을 여러 장(chapter)으로 나누어 쓰는데, 각 장은 각각 다른 파일에 저장하곤 한다. 소설의 모든 장을 쓰고 나서는 각 장이 쓰여진 파일을 합쳐서 최종적으로 소설의 완성본이 들어있는 한 개의 파일을 만든다. 이 과정에서 두 개의 파일을 합쳐서 하나의 임시파일을 만들고, 이 임시파일이나 원래의 파일을 계속 두 개씩 합쳐서 파일을 합쳐나가고, 최..
[boj] 1715번: 카드 정렬하기
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/1715 1715번: 카드 정렬하기 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장 www.acmicpc.net 1. 문제 설명 정렬된 두 묶음의 숫자 카드가 있다고 하자. 각 묶음의 카드의 수를 A, B라 하면 보통 두 묶음을 합쳐서 하나로 만드는 데에는 A+B 번의 비교를 해야 한다. 이를테면, 20장의 숫자 카드 묶음과 30장의 숫자 카드 묶음을 합치려면 50번의 비교가 필요하다. 매우 많은 숫자 카드 묶음이 책상 위에 놓여 있다. 이들을 두 묶음씩 골라 서로 합쳐나간다면, 고르..
[boj] 1541번: 잃어버린 괄호
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/1541 1541번: 잃어버린 괄호 첫째 줄에 식이 주어진다. 식은 ‘0’~‘9’, ‘+’, 그리고 ‘-’만으로 이루어져 있고, 가장 처음과 마지막 문자는 숫자이다. 그리고 연속해서 두 개 이상의 연산자가 나타나지 않고, 5자리보다 www.acmicpc.net 1. 문제 설명 괄호를 적절히 쳐서 이 식의 값을 최소로 만드는 문제다. 2. 접근 방식 여러 시도를 했었다... 구현 실력이 부족하여 실패했다....... 3. 주석 달기 (변수 설명, 각 줄마다 문장으로 설명, 함수 설명) package BOJ; import java.io.BufferedReader; import java.io.IOException; import java.io.I..
[boj] 25044번: 에어컨
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/25044 25044번: 에어컨 대부분의 DGIST 기초학부 학생들은 기숙사에서 생활하고 있습니다. 여름이 다가옴에 따라 자유롭게 온도를 설정할 수 있는 시원한 에어컨을 사용하게 될 예정입니다. 안타깝게도 에어컨은 매일 1 www.acmicpc.net 1. 문제 설명 대부분의 DGIST 기초학부 학생들은 기숙사에서 생활하고 있습니다. 여름이 다가옴에 따라 자유롭게 온도를 설정할 수 있는 시원한 에어컨을 사용하게 될 예정입니다. 안타깝게도 에어컨은 매일 15, 18, 21시 정각에 자동으로 꺼지게 설계되어 있습니다. 더군다나 에어컨의 내장 시계가 고장이 나서 세 번째로 꺼질 때마다 에어컨의 시계는 K분간 멈추게 됩니다. 편안한 낮잠을 위해 ..
[boj] 12927번: 배수 스위치
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/12927 12927번: 배수 스위치 첫째 줄에 전구의 상태가 1번 전구부터 차례대로 주어진다. Y는 전구가 켜 있는 경우, N은 전구가 꺼져있는 경우이다. 전구의 개수는 1보다 크거나 같고 1,000보다 작거나 같은 자연수이다. www.acmicpc.net 1. 문제 설명 강호는 전구를 N개를 가지고 있다. 1번부터 N번까지 번호가 매겨져있고, 전구는 켜져있거나 꺼져있다. 전구의 개수만큼 스위치 N개를 가지며, 1번부터 N번까지 번호가 매겨져 있다. i번 스위치를 끄게 되면 i의 배수 번호를 가지는 전구의 상태를 모두 반전시킨다. 2. 접근 방식 해시맵을 사용하였다. (특별한 알고리즘은 없다.) 3. 주석 달기 (변수 설명, 각 줄마다 ..
[boj] 11399번: ATM
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 1. 문제 설명 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. ..
[boj] 1026번: 보물
·
Problem Solving/Baekjoon
출처 : https://www.acmicpc.net/problem/1026 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net 1. 문제 설명 길이가 N인 정수 배열 A와 B가 있고, 다음과 같이 함수 S가 정의된다. S = A[0] x B[0] + .... + A[N-1] x B[N-1] S의 값을 가장 작게 만들기 위해 A의 수를 재배열하자. 단, B에 있는 수는 재배열하면 안된다. S의 최솟값을 출력하라. 2. 접근 방식 사실 문제에서 B에 있는 수를 재배열하지 말라고 했지만 출력은 S의 최솟값을 출..