2020-10-06 문제 세계적인 이진수 매니아 현수는 오늘도 이진수를 연구하고 있다. 오늘은 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 구해보려고 한다. k가 주어졌을 때, 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 k가 주어진다. (1 ≤ k ≤ 106) 출력 첫째 줄에 이진수로 나타냈을 때, k자리 이하인 모든 자연수의 합을 이진수로 출력한다. 소스코드 Scanner scan = new Scanner(System.in); int n = scan.nextInt(); int number = 1; int sum = 0; while(true) { String strNumber = Integer.toBinaryString(number..
2020-10-05 문제 영식이와 친구들이 원형으로 모여서 시계방향으로 1부터 N까지 적혀있는 자리에 앉는다. 영식이와 친구들은 공 던지는 게임을 하기로 했다. 게임의 규칙은 다음과 같다. 일단 1번 자리에 앉은 사람이 공을 받는다. 그리고 나서 공을 다른 사람에게 던진다. 다시 공을 받은 사람은 다시 공을 던지고, 이를 계속 반복한다. 한 사람이 공을 M번 받았으면 게임은 끝난다. (지금 받은 공도 포함하여 센다.) 공을 M번보다 적게 받은 사람이 공을 던질 때, 현재 공을 받은 횟수가 홀수번이면 자기의 현재 위치에서 시계 방향으로 L번째 있는 사람에게, 짝수번이면 자기의 현재 위치에서 반시계 방향으로 L번째 있는 사람에게 공을 던진다. 공을 총 몇 번 던지는지 구하는 프로그램을 작성하시오. 입력 첫째..
2020-10-04 문제 학생들은 3주가 지난 기념으로 매점에서 1월 1일이 지나 싸게 파는 폭죽을 사서 터뜨리고 있다. 폭죽쇼를 하는 동안 N명의 학생들이 폭죽을 터뜨린다. 그리고 이 N명의 학생은 각각 일정한 주기로 폭죽을 터뜨린다. 물론 이 주기는 학생들마다 같을 수도, 다를 수도 있다. 그리고 우리는 초 단위로 관찰을 하고, 폭죽 역시 초 단위로 터진다. 폭죽쇼가 끝날 때까지 얼마나 많은 시간동안 밤하늘에 폭죽이 터지는 것을 볼 수 있는지 궁금해 하는 조교를 도와주자. 입력 첫 줄에 폭죽을 터뜨리는 학생의 수 N(1 ≤ N ≤ 100)과 폭죽쇼가 끝나는 시간 C(1 ≤ C ≤ 2,000,000)가 주어진다. 그 다음 N개의 줄에는 학생들이 폭죽을 터뜨리는 주기가 한 줄에 하나씩 주어진다. 주기는 ..
2020-10-01 알고리즘 문제를 풀다 보면 항상 문제에 대한 입력값이 주어지는데 (Ex) N * M = K) 이러한 입력값을 받기 위해서 Scanner라는 함수를 많이 사용할 것이다. 물론 필자도 Scanner이 사용이 편하고 해당 함수로 입력 함수를 입문을 했기 때문에 조금 더 익숙한 것이 사실이다. (BufferedReader는 선언시 조금 길다..) Scanner scan = new Scanner(System.in); //Scanner 사용전 변수 선언 BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //BufferedReader 사용전 변수 선언 (실제로 변수를 선언하는 과정에서는 길이가 두배 정도 차이 난다...
2020-09-30 문제 수 124를 뒤집으면 421이 되고 이 두 수를 합하면 545가 된다. 124와 같이 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되는지 테스트 하는 프로그램을 작성하시오. 입력 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄에 하나의 정수 N(10 ≤ N ≤ 100000)이 주어진다. 출력 각 테스트 케이스에 대해서 원래 수와 뒤집은 수를 합한 수가 좌우 대칭이 되면 YES를 아니면 NO를 한 줄에 하나씩 출력한다. 소스코드 Scanner scan = new Scanner(System.in); String reverseN = ""; int numberN =0; int testCase = scan.nextInt(); for(int T = 0; ..
2020-09-29 문제 예선 날짜가 다가오는데도 적당한 A번 문제를 생각하지 못한 출제진은 작년 전대프연 예선 A번을 응용해서 문제를 만들기로 했다. 이를 위해 사진 속 문제를 찾아본 출제진은 해당 문제가 2007학년도 6월 고등학교 1학년 전국연합학력평가 수리 영역 26번임을 알게 되었다. 시험지를 내려받고 문제들을 살펴보던 출제진은 아래와 같은 문제를 발견했다. 예상했겠지만, 여러분은 이제 위의 19번 문제 세 번째 줄에 등장하는 수 '1000'을 임의의 자연수로 바꾸었을 때 그에 해당하는 답을 출력하는 프로그램을 작성해야 한다. 입력 첫 번째 줄에 자연수 n (1 ≤ n ≤ 109)이 주어진다. 출력 첫 번째 줄에 19번 문제 세 번째 줄에 등장하는 수 '1000'을 자연수 n으로 바꾸었을 때 그..