2020-12-17 문제 정휘는 애니메이션계의 영원한 명작이자 최고의 흥행작 겨울왕국 2를 자그마치 싱어롱으로 관람하려고 한다! 겨울왕국에 등장하는 캐릭터 중 엘사를 너무 좋아하는 정휘는 L4, 즉 L열의 네 번째 자리에 앉으려고 한다. 그러나 정휘가 가려는 영화관은 좌석 번호가 자연수 하나로 표현되기 때문에 예매를 하기가 힘들다. 정휘가 겨울왕국을 관람하는 영화관은 세로로 N칸, 가로로 M칸인 좌석들로 구성되어 있다. 좌석의 번호는 좌상단 끝에 있는 A열의 첫 번째 자리부터 1번으로 시작하여 오른쪽으로 번호가 하나씩 증가하다가 끝에 다다르면 B열의 첫 번째 자리부터 또 오른쪽으로, C열의 첫 번째 자리부터 또 오른쪽으로 진행하는 것을 반복하면서 숫자가 증가해 나간다. 정휘가 좌석 L4를 빠르게 선점하여..
2020-12-15 문제 회의가 끝났고, 이제 악수를 하는 시간이다. 모든 사람은 직사각형 탁자 하나의 한 면에 앉아있다. 자리를 벗어나지 않고 악수를 하는 방법의 수는 총 몇 가지일까? 각 사람들은 자신의 왼쪽이나 오른쪽에 있는 사람들과 악수를 할 수 있다. (안 할 수도 있다) 입력 첫째 줄에 회의에 참석한 사람의 수 n (1 ≤ n ≤ 10,000,000)이 주어진다. 출력 첫째 줄에 악수를 하는 방법의 수를 출력한다. 수가 매우 커질 수 있기 때문에, 마지막 자리만 출력한다. n=4인 경우에는 5가지 방법이 있다. import java.util.Scanner; public class TemplateA { public static void main(String[] args) { //피보나치 수열 문..
2020-12-13 문제 2015, 2016년에 이어 2017년에도 연세대학교 교내 프로그래밍 경시대회가 열린다. 택희, 영훈이, 남규는 열심히 문제를 만들었고, 이에 대한 보상으로 과사로부터 사탕 N개를 받았다. N개의 사탕을 적절히 나눠 가지기 위해 토론한 결과, 아래와 같은 방식으로 사탕을 나누기로 결정하였다. 남는 사탕은 없어야 한다. 남규는 영훈이보다 2개 이상 많은 사탕을 가져야 한다. 셋 중 사탕을 0개 받는 사람은 없어야 한다. 택희가 받는 사탕의 수는 홀수개가 되어서는 안 된다. 이제 사탕을 적절히 나누어 집에 돌아가던 중, 택희는 위와 같은 규칙을 만족하도록 세 명에게 사탕을 나누어 주는 방법의 수가 궁금해졌다. 사탕의 개수 N이 주어지면, 사탕을 세 사람에게 분배하는 서로 다른 경우의..
2020-12-11 toString 메서드는 Object 클래스에 속해있는 메서드이다. 기능으로는 객체의 문자정보를 "Class(이름)@16진수의 해시 코드"로 Console 창에 출력하는 기능을 가지고 있다. 위의 코드는 단순하게 Object 객체를 하나 만들고 해당 객체를 toString 메서드로 출력하는 코드로 위와 같은 결과를 얻을 수 있다. 보통은 Object 자체의 메서드로는 활용하지 않고 Date 와 같은 현재의 날짜 정보를 출력할 때나 아니면, 별개의 클래스에 Override(재정의)하여 사용하곤 한다. 아래는 구체적인 예이다. 위는 Date 타입의 객체를 생성한 후 기존에 Object 클래스와 마찬가지로 출력해보았다. 결과적으로 현재의 날짜와 시간이 정상적으로 출력되는 것을 확인할 수 있..
2020-12-10 문제 피제수(분자) A와 제수(분모) B가 있다. 두 수를 나누었을 때, 소숫점 아래 N번째 자리수를 구하려고 한다. 예를 들어, A=3, B=4, N=1이라면, A÷B=0.75 이므로 출력 값은 7이 된다. 입력 첫 번째 줄에 A와 B(1≤A, B≤100,000), N(1≤N≤1,000,000)이 공백을 경계로 주어진다. 출력 A÷B를 했을 때, 소숫점 아래 N번째 수를 출력한다. import java.util.Scanner; public class TemplateA { public static void main(String[] args) { Scanner scan = new Scanner(System.in); double a = scan.nextDouble(); double b =..
2020-12-09 문제 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1≤N≤10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한다. 이때, 사용하는 자연수는 N이하여야 한다. 예를 들어, 15를 나타내는 방법은 15, 7+8, 4+5+6, 1+2+3+4+5의 4가지가 있다. 반면에 10을 나타내는 방법은 10, 1+2+3+4의 2가지가 있다. N을 입력받아 가지수를 출력하는 프로그램을 작성하시오. 입력 첫 줄에 정수 N이 주어진다. 출력 입력된 자연수 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 출력하시오. import java.io.BufferedReader; import java.io.IO..