2020-09-02 문제 서강대학교 곤자가 기숙사의 지하에는 n개의 방이 일렬로 늘어선 감옥이 있다. 각 방에는 벌점을 많이 받은 학생이 구금되어있다. 그러던 어느 날, 감옥 간수인 상범이는 지루한 나머지 정신나간 게임을 하기로 결정했다. 게임의 첫 번째 라운드에서 상범이는 위스키를 한 잔 들이키고, 달려가며 감옥을 한 개씩 모두 연다. 그 다음 라운드에서는 2, 4, 6, ... 번 방을 다시 잠그고, 세 번째 라운드에서는 3, 6, 9, ... 번 방이 열려있으면 잠그고, 잠겨있다면 연다. k번째 라운드에서는 번호가 k의 배수인 방이 열려 있으면 잠그고, 잠겨 있다면 연다. 이렇게 n번째 라운드까지 진행한 이후, 상범이는 위스키의 마지막 병을 마시고 쓰러져 잠든다. 구금되어있는 몇 명(어쩌면 0명)의..
2020-09-01 문제 총 N개의 시험장이 있고, 각각의 시험장마다 응시자들이 있다. i번 시험장에 있는 응시자의 수는 Ai명이다. 감독관은 총감독관과 부감독관으로 두 종류가 있다. 총감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 B명이고, 부감독관은 한 시험장에서 감시할 수 있는 응시자의 수가 C명이다. 각각의 시험장에 총감독관은 오직 1명만 있어야 하고, 부감독관은 여러 명 있어도 된다. 각 시험장마다 응시생들을 모두 감시해야 한다. 이때, 필요한 감독관 수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와..
2020-08-31 이론 1부터 100까지의 수의 합을 구하는 방법 1 + 2 + 3 . . . . . . + 100 까지의 합을 손쉽게 코딩으로 구하는 방법을 알아보도록 하겠습니다. int sum, number; number = 0; sum = 0; // 우선적으로 1씩 더해줄 변수 number 선언 // 각 number가 더해질 sum변수를 선언합니다. do { number++; sum += number; }while(number
2020-08-31 거듭제곱 수학에서, 거듭제곱(승멱乗冪 또는 멱冪, exponentiation)은 주어진 수나 문자를 주어진 횟수만큼 여러 번 곱하는 이항연산이다. 이 주어진 수를 밑(영어: base)이라고 하고, 주어진 횟수를 지수(指數, 영어: exponent 또는 power, 문화어: 어깨수)라고 한다. 소스코드 int Two = 2; System.out.println(Math.pow(Two, 2)); //앞에는 제곱을 하고자하는 수 //뒤에는 제곱하고자 하는 만큼의 수를 입력해 준다. //출력값 : 4.0 System.out.println(Math.pow(Two, 3)); //출력값 : 8.0 제곱근 수학에서, 어떤 수의 제곱근(제곱根, 영어: square root)은 제곱하여 그 수가 되는 수..
2020-08-30 문제 다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다. 다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.) 입력 첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수 또는 0이다. 출력 첫째 줄에 필요한 세트의 개수를 출력한다. 소스코드 Scanner scan = new Scanner(System.in); String n = scan.next(); int Nsize = n.leng..
2020-08-29 수학에서, 절댓값(絕對-, 영어: absolute value 또는 modulus)은 실수가 실수선의 원점과, 복소수가 복소평면의 원점과 떨어진 거리를 나타내는 음이 아닌 실수이다. 이는 선형대수학의 노름과 추상대수학의 절댓값으로 확장시킬 수 있다. 말은 어렵지만 프로그램에서 활용시에는 마이너스 값이 나오더라도 항상 양수의 값으로 처리하기 위해서 많이 사용한다. 아래는 소스코드다. 소스코드 int a = 1 - 2; System.out.println(a); //출력값 == -1 int b = Math.abs(a); System.out.println(b); //출력값 == 1 Math 클래스 중 abs 매소드를 활용하여 쉽게 절대값을 나타낼 수 있다.