Algorithm 66

[JAVA] 11718 - 그대로 출력하기

문제입력 받은 대로 출력하는 프로그램을 작성하시오.입력입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄은 주어지지 않는다. 또, 각 줄은 공백으로 시작하지 않고, 공백으로 끝나지 않는다.출력입력받은 그대로 출력한다. 풀이 Scanner클래스의 함수로 간단히 풀 수 있다. hasNext함수로 다음이 있는지 확인한다.nextLine함수로 한 줄을 통째로 읽어서 바로 출력한다. 답import java.util.Scanner; public class RawPrint { public static void main(String[] args){ Scanner scanner = new Scanner(System...

[Python] 1931 - 회의실 배정

문제한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다. 입력첫째 줄에 회의의 수 N(1 ≤ N ≤ 100,000)이 주어진다.둘째 줄부터 N+1 줄까지 각 회의의 정보가 주어지는데 이것은 공백을 사이에 두고 회의의 시작시간과 끝나는 시간이 주어진다.시작 시간과 끝나는 시간은 231-1보다 작거나 같은..

[Python] 1783 - 병든 나이트

문제병든 나이트가 N × M 크기 체스판의 가장 왼쪽아래 칸에 위치해 있다. 병든 나이트는 건강한 보통 체스의 나이트와 다르게 4가지로만 움직일 수 있다.2칸 위로, 1칸 오른쪽1칸 위로, 2칸 오른쪽1칸 아래로, 2칸 오른쪽2칸 아래로, 1칸 오른쪽병든 나이트는 여행을 시작하려고 하고, 여행을 하면서 방문한 칸의 수를 최대로 하려고 한다. 병든 나이트의 이동 횟수가 4번보다 적지 않다면, 이동 방법을 모두 한 번씩 사용해야 한다. 이동 횟수가 4번보다 적은 경우(방문한 칸이 5개 미만)에는 이동 방법에 대한 제약이 없다.체스판의 크기가 주어졌을 때, 병든 나이트가 여행에서 방문할 수 있는 칸의 최대 개수를 구해보자. 입력첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000..

[Python] 1783 - 병든 나이트

문제병든 나이트가 N × M 크기 체스판의 가장 왼쪽아래 칸에 위치해 있다. 병든 나이트는 건강한 보통 체스의 나이트와 다르게 4가지로만 움직일 수 있다.2칸 위로, 1칸 오른쪽1칸 위로, 2칸 오른쪽1칸 아래로, 2칸 오른쪽2칸 아래로, 1칸 오른쪽병든 나이트는 여행을 시작하려고 하고, 여행을 하면서 방문한 칸의 수를 최대로 하려고 한다. 병든 나이트의 이동 횟수가 4번보다 적지 않다면, 이동 방법을 모두 한 번씩 사용해야 한다. 이동 횟수가 4번보다 적은 경우(방문한 칸이 5개 미만)에는 이동 방법에 대한 제약이 없다.체스판의 크기가 주어졌을 때, 병든 나이트가 여행에서 방문할 수 있는 칸의 최대 개수를 구해보자. 입력첫째 줄에 체스판의 세로 길이 N와 가로 길이 M이 주어진다. N과 M은 2,000..

[JAVA] 11022 - A+B - 8

문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다.각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)출력각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다. 풀이 A+B에서 여전히 벗어나지 못하고 있다..이전 문제에서 출력형식이 조금 추가됐다방식은 똑같다printlnprintf 답import java.util.Scanner; public class AplusB8 { public static void main(String[] args) { Scanner scanner = new Scann..

[JAVA] 11021 - A+B - 7

문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다.각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)출력각 테스트 케이스마다 "Case #x: "를 출력한 다음, A+B를 출력한다. 테스트 케이스 번호는 1부터 시작한다. 풀이 A+B에서 벗어날 수 없다..다른 건 이전 문제들과 비슷하다출력문을 어떻게 쓰느냐가 포인트다printlnprintf 답import java.util.Scanner; public class AplusB7 { public static void main(String[] args){ Scanner scanner = new Scanner(System.in); ..

[JAVA] 10953 - A+B - 6

문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다.각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. A와 B는 콤마(,)로 구분되어 있다. (0 < A, B < 10)출력각 테스트 케이스마다 A+B를 출력한다. 풀이 그동안 사용했던 nextInt함수를 쓸 수 없다.next함수를 통해 한 번에 받고 split함수로 짤라서 사용한다. 배운 지식nextInt를 쓰고 nextLine을 바로 쓰면 문자가 읽히지 않는데, 이는 nextLine이 남아있는 개행문자(\n)를 먼저 읽기 때문이라고 한다.이 경우, 한 번더 nextLine을 사용해 읽어주거나 Scanner객체를 따로 사용해주면문제를 해결할 수 있다. ..

[JAVA] 10952 - A+B - 5

문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.입력입력은 여러 개의 테스트 케이스로 이루어져 있다.각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)입력의 마지막에는 0 두 개가 들어온다.출력각 테스트 케이스마다 A+B를 출력한다. 풀이 while문에 true로 무한루프 생성A랑 B가 0이면 멈춤 ⇒ 원래는 둘 다 0인 조건인데 A와 B가 0보다 크므로 더했을 때 0이라는 조건도 성립 답public class AplusB5 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(true) { int A = scan..

[JAVA] 10951 - A+B - 4

문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.입력입력은 여러 개의 테스트 케이스로 이루어져 있다.각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)출력각 테스트 케이스마다 A+B를 출력한다. 풀이 A+B 문제에서 while문이 추가되면 된다. 배운 지식Scanner클래스의 경우, hasNext메소드로 EOF를 확인할 수 있다. EOF의 경우 false를 반환한다. 답import java.util.Scanner; public class ApulsB4 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); while(scann..

[Python] 10610 - 30

문제어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한다. 미르코를 도와 그가 만들고 싶어하는 수를 계산하는 프로그램을 작성하라.입력N을 입력받는다. N는 최대 105개의 숫자로 구성되어 있으며, 0으로 시작하지 않는다.출력미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는다면, -1을 출력하라. 풀이 방법30은 3과 10의 곱이다30의 배수가 되려면 적어도 한 개의 0이 필요하다0을 하나 빼고 난 수가 3의 배수이면 된다3의 배수는 숫자를 다 더했을 때 3의 배수다 답import sys input = sys.stdin.readli..