분류 전체보기 96

[Python] 11399 - ATM

문제인하은행에는 ATM이 1대밖에 없다. 지금 이 ATM앞에 N명의 사람들이 줄을 서있다. 사람은 1번부터 N번까지 번호가 매겨져 있으며, i번 사람이 돈을 인출하는데 걸리는 시간은 Pi분이다. 사람들이 줄을 서는 순서에 따라서, 돈을 인출하는데 필요한 시간의 합이 달라지게 된다. 예를 들어, 총 5명이 있고, P1 = 3, P2 = 1, P3 = 4, P4 = 3, P5 = 2 인 경우를 생각해보자. [1, 2, 3, 4, 5] 순서로 줄을 선다면, 1번 사람은 3분만에 돈을 뽑을 수 있다. 2번 사람은 1번 사람이 돈을 뽑을 때 까지 기다려야 하기 때문에, 3+1 = 4분이 걸리게 된다. 3번 사람은 1번, 2번 사람이 돈을 뽑을 때까지 기다려야 하기 때문에, 총 3+1+4 = 8분이 필요하게 된다...

[JAVA] 11719 - 그대로 출력하기 2

문제입력 받은 대로 출력하는 프로그램을 작성하시오.입력입력이 주어진다. 입력은 최대 100줄로 이루어져 있고, 알파벳 소문자, 대문자, 공백, 숫자로만 이루어져 있다. 각 줄은 100글자를 넘지 않으며, 빈 줄이 주어질 수도 있고, 각 줄의 앞 뒤에 공백이 있을 수도 있다.출력입력받은 그대로 출력한다. 풀이 그대로 출력하기 문제와 두가지가 다르다.빈 줄이 주어질 수 있다.앞 뒤에 공백이 있을 수 있다..하지만 한 줄을 그대로 받아서 출력하는 방식으로 풀면 이전 문제와 같은 코드로 통과가 가능하다. 답import java.util.Scanner; public class RawPrint2 { public static void main(String[] args){ Scanner scanner = new Sca..

[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..