Java8
-
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 =..
백준 BaekJoon 1312번: 소수 [Java] 자바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.10 -
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..
백준 BaekJoon 2018번: 수들의 합 5 [Java] 자바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..
2020.12.09 -
2020-12-08 해시 코드란 객체를 식별하는 하나의 정수 값을 나타내는 말이다. 이는 각 객체의 메모리 번지마다 다른 해시 코드 값을 만들어 리턴하기 때문에, 객체마다 다른 값을 가지게 된다. 해당 해시코드는 HasMap / HashSet / Hashtable과 같은 프레임워크에서 논리적 동등 여부를 체크하기 위해서 오버라이딩되곤 하는데, 이와 같은 오버라이딩을 하는 이유를 알아보자. package hashCode; public class thashCode { public int key; public thashCode(int key) { this.key = key; } @Override public boolean equals(Object obj) { if(obj instanceof thashCode)..
[Java] 자바 해시코드 hashCord( ) 의 기능 / 오버라이딩2020-12-08 해시 코드란 객체를 식별하는 하나의 정수 값을 나타내는 말이다. 이는 각 객체의 메모리 번지마다 다른 해시 코드 값을 만들어 리턴하기 때문에, 객체마다 다른 값을 가지게 된다. 해당 해시코드는 HasMap / HashSet / Hashtable과 같은 프레임워크에서 논리적 동등 여부를 체크하기 위해서 오버라이딩되곤 하는데, 이와 같은 오버라이딩을 하는 이유를 알아보자. package hashCode; public class thashCode { public int key; public thashCode(int key) { this.key = key; } @Override public boolean equals(Object obj) { if(obj instanceof thashCode)..
2020.12.08 -
2020-12-07 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. (Comparator를 알면 정말 쉽고 모르면 정말 어려운 문제..) import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; publ..
백준 BaekJoon 11650번: 좌표 정렬하기 [Java] 자바2020-12-07 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. (Comparator를 알면 정말 쉽고 모르면 정말 어려운 문제..) import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; publ..
2020.12.07 -
2020-12-06 문제 홀수인 자연수 N(3≤N≤999)이 주어지면, 다음과 같이 1부터 N2까지의 자연수를 달팽이 모양으로 N*N의 표에 늘어놓을 수 있다. N이 주어졌을 때, 이러한 표를 출력하는 프로그램을 작성하시오. 또한 N2 이하의 자연수가 하나 주어졌을 때, 그 좌표도 함께 출력하시오. 예를 들어 N=5인 경우 6의 좌표는 (4,3)이다. 입력 첫째 줄에 홀수인 자연수 N이 주어진다. 둘째 줄에는 위치를 찾고자 하는 N2 이하의 자연수가 하나 주어진다. 출력 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 출력한다. import java.util..
백준 BaekJoon 1913번: 달팽이 [Java] 자바2020-12-06 문제 홀수인 자연수 N(3≤N≤999)이 주어지면, 다음과 같이 1부터 N2까지의 자연수를 달팽이 모양으로 N*N의 표에 늘어놓을 수 있다. N이 주어졌을 때, 이러한 표를 출력하는 프로그램을 작성하시오. 또한 N2 이하의 자연수가 하나 주어졌을 때, 그 좌표도 함께 출력하시오. 예를 들어 N=5인 경우 6의 좌표는 (4,3)이다. 입력 첫째 줄에 홀수인 자연수 N이 주어진다. 둘째 줄에는 위치를 찾고자 하는 N2 이하의 자연수가 하나 주어진다. 출력 N개의 줄에 걸쳐 표를 출력한다. 각 줄에 N개의 자연수를 한 칸씩 띄어서 출력하면 되며, 자릿수를 맞출 필요가 없다. N+1번째 줄에는 입력받은 자연수의 좌표를 나타내는 두 정수를 한 칸 띄어서 출력한다. import java.util..
2020.12.06 -
2020-12-05 와일드카드는 제네릭 타입을 매개 값이나 리턴 타입으로 사용할 때 구체적인 타입 대신에 사용하는 것으로 코드에서는?로 표현된다. 사용법은 3가지로 나누어 지며, 아래와 같다. 1. 제네릭타입 : 모든 클래스 / 인터페이스 타입이 올 수 있다. 2. 제네릭타입
[Java] 자바 제네릭(Generic) 와일드 카드 타입 정리2020-12-05 와일드카드는 제네릭 타입을 매개 값이나 리턴 타입으로 사용할 때 구체적인 타입 대신에 사용하는 것으로 코드에서는?로 표현된다. 사용법은 3가지로 나누어 지며, 아래와 같다. 1. 제네릭타입 : 모든 클래스 / 인터페이스 타입이 올 수 있다. 2. 제네릭타입
2020.12.05 -
2020-12-04 (제네릭의 기초적인 개념과 기존 예제가 궁금하면, 아래 링크로 가서 확인하고 오자.) seeminglyjs.tistory.com/184 제네릭에는 다양한 타입들이 들어갈 수 있지만, 특정 경우에는 제네릭에 들어갈 타입을 제한시켜야 하는 경우가 있다. 예를 들자면 어떤 클래스 필드에 age(나이)라는 변수가 있다고 가정해 보자. 이러한 경우에는 해당 제네릭 타입을 숫자로 받아야 하기 때문에 Integer / short / double...과 같은 숫자형 타입으로 한정 지을 수 있다. 이를 제한된 타입 파라미터라고 한다. 그러면 이제 구체적인 코드를 살펴보도록 하자. package Generic1; public class man2{ public static int compareAge(T ..
[Java] 자바 제한된 타입 파라미터 제네릭(Generic) 알아보기2020-12-04 (제네릭의 기초적인 개념과 기존 예제가 궁금하면, 아래 링크로 가서 확인하고 오자.) seeminglyjs.tistory.com/184 제네릭에는 다양한 타입들이 들어갈 수 있지만, 특정 경우에는 제네릭에 들어갈 타입을 제한시켜야 하는 경우가 있다. 예를 들자면 어떤 클래스 필드에 age(나이)라는 변수가 있다고 가정해 보자. 이러한 경우에는 해당 제네릭 타입을 숫자로 받아야 하기 때문에 Integer / short / double...과 같은 숫자형 타입으로 한정 지을 수 있다. 이를 제한된 타입 파라미터라고 한다. 그러면 이제 구체적인 코드를 살펴보도록 하자. package Generic1; public class man2{ public static int compareAge(T ..
2020.12.04 -
2020-12-02 문제 유명한 피타고라스의 정리와 유사한 형태의 피타고라스 기댓값 (Pythagorean Expectation)이 야구와 같은 스포츠 경기에 자주 사용된다. 피타고라스 기댓값은 빌 제임스(Bill James)에 의해 정의되었으며, 이 값은 특정 야구팀이 한 시즌 동안 얼마나 잘 했는지를 평가하는 지표 중 하나로 사용된다. 한 야구팀의 피타고라스 기댓값 W는 아래 식과 같이 정의된다. 여기서 S는 해당 팀의 총 득점 수를, A는 해당 팀의 총 실점 수를 나타낸다. 이 기댓값을 실제 승률과 비교하여, 해당 팀이 한 시즌을 얼마나 잘 보냈는지 평가할 수 있다. 예를 들어, 한화 이글스는 2014 시즌에 619 득점과 889 실점을 했다. 즉, S = 619, A = 889이 되어, 한화 팀의..
백준 BaekJoon 11070번: 피타고라스 기댓값 [Java] 자바2020-12-02 문제 유명한 피타고라스의 정리와 유사한 형태의 피타고라스 기댓값 (Pythagorean Expectation)이 야구와 같은 스포츠 경기에 자주 사용된다. 피타고라스 기댓값은 빌 제임스(Bill James)에 의해 정의되었으며, 이 값은 특정 야구팀이 한 시즌 동안 얼마나 잘 했는지를 평가하는 지표 중 하나로 사용된다. 한 야구팀의 피타고라스 기댓값 W는 아래 식과 같이 정의된다. 여기서 S는 해당 팀의 총 득점 수를, A는 해당 팀의 총 실점 수를 나타낸다. 이 기댓값을 실제 승률과 비교하여, 해당 팀이 한 시즌을 얼마나 잘 보냈는지 평가할 수 있다. 예를 들어, 한화 이글스는 2014 시즌에 619 득점과 889 실점을 했다. 즉, S = 619, A = 889이 되어, 한화 팀의..
2020.12.02 -
2020-12-01 인터페이스는 자바에서의 다형성을 실현하기 위해 객체의 교환성을 높여주는 역할을 한다. 선언 방법으로는 아래와 같이 New -> Interface를 선택해서 간단히 생성할 수 있다. 인터페이스의 특징으로는 상수와 메소드만 선언 가능하며, 생성자를 가질 수 없다. 또한 메서드는 추상 메서드 / 정적 메서드 / 디폴트 메서드 3가지 종류로 나누어진다. 이 중에서 추상 메서드를 사용하려면, 이를 구현하는 구현 클래스가 따로 필요하다.(위의 인터페이스는 추상 메서드 2개를 선언해 두었다.) 아래는 구현 클래스에 대한 내용이다. package interfacePractice; public class move implements arm1, arm2, body{ // 구현하는 모든 인터페이스의 추상..
[Java] 자바 인터페이스(Interface) 알아보기2020-12-01 인터페이스는 자바에서의 다형성을 실현하기 위해 객체의 교환성을 높여주는 역할을 한다. 선언 방법으로는 아래와 같이 New -> Interface를 선택해서 간단히 생성할 수 있다. 인터페이스의 특징으로는 상수와 메소드만 선언 가능하며, 생성자를 가질 수 없다. 또한 메서드는 추상 메서드 / 정적 메서드 / 디폴트 메서드 3가지 종류로 나누어진다. 이 중에서 추상 메서드를 사용하려면, 이를 구현하는 구현 클래스가 따로 필요하다.(위의 인터페이스는 추상 메서드 2개를 선언해 두었다.) 아래는 구현 클래스에 대한 내용이다. package interfacePractice; public class move implements arm1, arm2, body{ // 구현하는 모든 인터페이스의 추상..
2020.12.01 -
2020-11-30 문제 "럭키스톤"은 카드를 통해 대결하는 게임이다. 창식이는 럭키스톤을 자주 한다. 이 게임의 카드에는 공격력과 생명력이 표시되어있다. 왼쪽에는 공격력이, 오른쪽에는 생명력이 숫자로 적혀있다. 서로 꺼낸 카드를 비교하여 남길 카드를 결정하는 데, 카드의 비교는 다음과 같이 이루어진다. 비교하는 카드의 공격력만큼 동시에 서로 상대 카드의 생명력을 깎는다. 줄어든 생명력은 다시 회복되지 않는다. 생명력이 0 이하인 경우에는 카드는 죽은 상태로 전환된다. 카드가 두 장 모두 남아있다면 비교를 계속한다. 요즘 따라 게임이 안 풀리는 창식이는 대전 전에 가능한 수를 미리 계산하여 최대한 이득을 챙기고 싶어 한다. 카드 2개의 공격력과 생명력이 주어지면 어떤 플레이어의 카드가 남아있을지 출력하는..
백준 BaekJoon 12756번: 고급 여관 [Java] 자바2020-11-30 문제 "럭키스톤"은 카드를 통해 대결하는 게임이다. 창식이는 럭키스톤을 자주 한다. 이 게임의 카드에는 공격력과 생명력이 표시되어있다. 왼쪽에는 공격력이, 오른쪽에는 생명력이 숫자로 적혀있다. 서로 꺼낸 카드를 비교하여 남길 카드를 결정하는 데, 카드의 비교는 다음과 같이 이루어진다. 비교하는 카드의 공격력만큼 동시에 서로 상대 카드의 생명력을 깎는다. 줄어든 생명력은 다시 회복되지 않는다. 생명력이 0 이하인 경우에는 카드는 죽은 상태로 전환된다. 카드가 두 장 모두 남아있다면 비교를 계속한다. 요즘 따라 게임이 안 풀리는 창식이는 대전 전에 가능한 수를 미리 계산하여 최대한 이득을 챙기고 싶어 한다. 카드 2개의 공격력과 생명력이 주어지면 어떤 플레이어의 카드가 남아있을지 출력하는..
2020.11.30 -
2020-11-29 문제 창영 마을의 우체부, 우유배달원, 신문배달원은 상근이네 집에 가는 것을 매우 싫어한다. 그 이유는 상근이네 집에는 사나운 개 두 마리가 지키고 있기 때문이다. 하지만, 그들은 이 개의 행동이 예측 가능하다는 것을 모르고 있다. 매일 아침, 개 한마리는 A분동안 공격적이고, B분동안 조용히 쉬고 있다. 또다른 개는 C분동안 공격적이고, D분동안 조용히 쉰다. 두 개는 이 행동을 계속해서 연속적으로 반복한다. 우체부, 신문배달원, 우유배달원의 도착 시간이 주어졌을 때, 개 몇 마리에게 공격을 받는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C, D가 주어진다. 둘째 줄에는 P, M, N가 주어진다. P는 우체부의 도착 시간, M은 우유배달원의 도착 시간, N은 신문..
백준 BaekJoon 2991번: 사나운 개 [Java] 자바2020-11-29 문제 창영 마을의 우체부, 우유배달원, 신문배달원은 상근이네 집에 가는 것을 매우 싫어한다. 그 이유는 상근이네 집에는 사나운 개 두 마리가 지키고 있기 때문이다. 하지만, 그들은 이 개의 행동이 예측 가능하다는 것을 모르고 있다. 매일 아침, 개 한마리는 A분동안 공격적이고, B분동안 조용히 쉬고 있다. 또다른 개는 C분동안 공격적이고, D분동안 조용히 쉰다. 두 개는 이 행동을 계속해서 연속적으로 반복한다. 우체부, 신문배달원, 우유배달원의 도착 시간이 주어졌을 때, 개 몇 마리에게 공격을 받는지 알아내는 프로그램을 작성하시오. 입력 첫째 줄에 A, B, C, D가 주어진다. 둘째 줄에는 P, M, N가 주어진다. P는 우체부의 도착 시간, M은 우유배달원의 도착 시간, N은 신문..
2020.11.29 -
2020-11-28 상속 : 현실세계에서는 부모의 재산을 자식이 물려받는 뜻으로 쓰이고는 한다. 자바에서도 그 의미가 크게 다르지 않는데, 한 번 알아보도록 하자. 자바에서의 상속은 부모 클래스의 멤버(필드, 메서드)를 자식 클래스가 상속받아 그대로 사용할 수 있다. (다만 상속 시 부모 클래스에서 private 접근 제한을 갖는 필드와 메서드는 상속이 이루어지지 않는다.) 아래 코드를 살펴보자. package Family상속; public class parent { String name; int age; parent(String name, int age){ this.name = name; this.age = age; } void info(){ System.out.println("저의 이름은 " + na..
[Java] 자바 상속(Inheritance) 쉽게 알아보기2020-11-28 상속 : 현실세계에서는 부모의 재산을 자식이 물려받는 뜻으로 쓰이고는 한다. 자바에서도 그 의미가 크게 다르지 않는데, 한 번 알아보도록 하자. 자바에서의 상속은 부모 클래스의 멤버(필드, 메서드)를 자식 클래스가 상속받아 그대로 사용할 수 있다. (다만 상속 시 부모 클래스에서 private 접근 제한을 갖는 필드와 메서드는 상속이 이루어지지 않는다.) 아래 코드를 살펴보자. package Family상속; public class parent { String name; int age; parent(String name, int age){ this.name = name; this.age = age; } void info(){ System.out.println("저의 이름은 " + na..
2020.11.28 -
2020-11-27 문제 등차가 정수인 등차수열 (어떤 수에 차례대로 일정한 수를 더해서 이루어지는 수열) 은 2개의 숫자로 나타낼 수 있다. P는 수열의 첫 번째 수이고, Q는 그 다음수가 되기 위해 바로 전의 수에 더해야 하는 수이다. 예를 들어 P=1, Q=2 이면 그 등차수열은 1, 3, 5, 7, ..... 이 된다. 등비가 정수인 등비수열 (어떤 수에서 시작해 차례로 같은 수를 곱하여 만든 수열) 은 등차수열과 비슷하게 2개의 숫자로 나타낼 수 있다. P는 수열의 첫 번째 수이고, Q는 그 다음수가 되기 위해 바로 전의 수에 곱해야 하는 수이다. 예를 들어 P=3, Q=2이면 그 등비수열은 3, 6, 12, ...이 된다. 테디는 세상에서 수학을 제일 좋아해서 매일같이 이 수열이 등차수열인지 ..
백준 BaekJoon 1731번: 추론 [Java] 자바2020-11-27 문제 등차가 정수인 등차수열 (어떤 수에 차례대로 일정한 수를 더해서 이루어지는 수열) 은 2개의 숫자로 나타낼 수 있다. P는 수열의 첫 번째 수이고, Q는 그 다음수가 되기 위해 바로 전의 수에 더해야 하는 수이다. 예를 들어 P=1, Q=2 이면 그 등차수열은 1, 3, 5, 7, ..... 이 된다. 등비가 정수인 등비수열 (어떤 수에서 시작해 차례로 같은 수를 곱하여 만든 수열) 은 등차수열과 비슷하게 2개의 숫자로 나타낼 수 있다. P는 수열의 첫 번째 수이고, Q는 그 다음수가 되기 위해 바로 전의 수에 곱해야 하는 수이다. 예를 들어 P=3, Q=2이면 그 등비수열은 3, 6, 12, ...이 된다. 테디는 세상에서 수학을 제일 좋아해서 매일같이 이 수열이 등차수열인지 ..
2020.11.27 -
2020-11-26 문제 신용카드는 총 16자리의 숫자로 구성되어 있다. 언뜻 보기에는 무작위로 된 숫자로 구성되어 있는 것 같이 보이지만 그 속에는 하나의 수학적 비밀이 숨겨져 있다. 그중 하나가 카드 번호가 유효 한지 유효하지 않은 지 검사하는 Luhn 공식이다. 그 공식은 다음과 같다. 신용카드의 16자리 숫자에서 맨 우측 수부터 세어 홀수 번째 수는 그대로 두고, 짝수 번째 수를 2배로 만든다. 2배로 만든 짝수 번째 수가 10 이상인 경우, 각 자리의 숫자를 더하고 그 수로 대체한다. 이와 같이 얻은 모든 자리의 수를 더한다. 그 합이 10으로 나뉘면 “정당한 번호”(유효)이고 그렇지 않으면 “부당한 번호”(유효하지 않음)로 판정된다. 다음 공식을 이용해 주어진 신용카드의 번호가 유효한지, 유효..
백준 BaekJoon 14726번: 신용카드 판별 [Java] 자바2020-11-26 문제 신용카드는 총 16자리의 숫자로 구성되어 있다. 언뜻 보기에는 무작위로 된 숫자로 구성되어 있는 것 같이 보이지만 그 속에는 하나의 수학적 비밀이 숨겨져 있다. 그중 하나가 카드 번호가 유효 한지 유효하지 않은 지 검사하는 Luhn 공식이다. 그 공식은 다음과 같다. 신용카드의 16자리 숫자에서 맨 우측 수부터 세어 홀수 번째 수는 그대로 두고, 짝수 번째 수를 2배로 만든다. 2배로 만든 짝수 번째 수가 10 이상인 경우, 각 자리의 숫자를 더하고 그 수로 대체한다. 이와 같이 얻은 모든 자리의 수를 더한다. 그 합이 10으로 나뉘면 “정당한 번호”(유효)이고 그렇지 않으면 “부당한 번호”(유효하지 않음)로 판정된다. 다음 공식을 이용해 주어진 신용카드의 번호가 유효한지, 유효..
2020.11.26 -
2020-11-25 문제 맨체스터 유나이티드의 감독 퍼거슨은 빨간 사과를 R개, 초록 사과를 G개 가지고 있다. 훈련장에 있는 선수들 중 몇 명에게 나누어 주려고 한다. 단, 선수들이 서로 같은 개수의 사과를 받지 못하면 경기력 저하가 나타날 수 있으므로 모든 선수에게 같은 개수를 주려고 한다. 퍼거슨 감독은 사과를 싫어한다. 따라서 사과가 남으면 안 된다. 예를 들어, 퍼거슨이 빨간 사과를 4개, 초록 사과를 8개 가지고 있다면, 다음과 같이 세가지 방법으로 나누어 줄 수 있다. 선수 1명에게 빨간 사과 4개와 초록 사과 8개를 줄 수 있다. 선수 2명에게 빨간 사과 2개와 초록 사과 4개를 각각 줄 수 있다. 선수 4명에게 빨간 사과 1개와 초록 사과 2개를 각각 줄 수 있다. 퍼거슨이 사과를 나누어..
백준 BaekJoon 2942번: 퍼거슨과 사과 [Java] 자바2020-11-25 문제 맨체스터 유나이티드의 감독 퍼거슨은 빨간 사과를 R개, 초록 사과를 G개 가지고 있다. 훈련장에 있는 선수들 중 몇 명에게 나누어 주려고 한다. 단, 선수들이 서로 같은 개수의 사과를 받지 못하면 경기력 저하가 나타날 수 있으므로 모든 선수에게 같은 개수를 주려고 한다. 퍼거슨 감독은 사과를 싫어한다. 따라서 사과가 남으면 안 된다. 예를 들어, 퍼거슨이 빨간 사과를 4개, 초록 사과를 8개 가지고 있다면, 다음과 같이 세가지 방법으로 나누어 줄 수 있다. 선수 1명에게 빨간 사과 4개와 초록 사과 8개를 줄 수 있다. 선수 2명에게 빨간 사과 2개와 초록 사과 4개를 각각 줄 수 있다. 선수 4명에게 빨간 사과 1개와 초록 사과 2개를 각각 줄 수 있다. 퍼거슨이 사과를 나누어..
2020.11.25 -
2020-11-17 문제 농부 존은 소 베시와 소 데이지를 키우고 있습니다. 두 소는 자유롭게 1,000 × 1,000 2차원 격자 목초지를 누비며 놀고 있습니다. 농부 존이 종을 치면 베시와 데이지가 농부 존이 있는 곳으로 달려갑니다. 베시가 B에 있을 때 1초 후에 움직일 수 있는 칸과 데이지가 D에 있을 때 1초 후에 움직일 수 있는 칸을 나타낸 그림 베시는 1초 후에 꼭짓점을 공유하는 8개의 칸 중 하나로 이동할 수 있고 데이지는 1초 후에 변을 공유하는 4개의 칸 중 하나로 이동할 수 있습니다. 칸들은 충분히 넓어서 칸 하나에도 베시와 데이지 그리고 존이 같이 서 있을 수 있습니다. 베시와 데이지 두 소 모두 최단 경로로 존에게 갈 때 어떤 소가 더 빨리 도착할까요? 입력 첫 번째 줄에 베시의 ..
백준 BaekJoon 16431번: 베시와 데이지 [Java] 자바2020-11-17 문제 농부 존은 소 베시와 소 데이지를 키우고 있습니다. 두 소는 자유롭게 1,000 × 1,000 2차원 격자 목초지를 누비며 놀고 있습니다. 농부 존이 종을 치면 베시와 데이지가 농부 존이 있는 곳으로 달려갑니다. 베시가 B에 있을 때 1초 후에 움직일 수 있는 칸과 데이지가 D에 있을 때 1초 후에 움직일 수 있는 칸을 나타낸 그림 베시는 1초 후에 꼭짓점을 공유하는 8개의 칸 중 하나로 이동할 수 있고 데이지는 1초 후에 변을 공유하는 4개의 칸 중 하나로 이동할 수 있습니다. 칸들은 충분히 넓어서 칸 하나에도 베시와 데이지 그리고 존이 같이 서 있을 수 있습니다. 베시와 데이지 두 소 모두 최단 경로로 존에게 갈 때 어떤 소가 더 빨리 도착할까요? 입력 첫 번째 줄에 베시의 ..
2020.11.23 -
2020-11-22 접근 제한자의 종류는 4가지가 있다. public / protected / default / private이다. 이는 라이브러리 클래스 설계 시 외부(다른) 클래스에서 접근 가능/불가능 여부에 따라 필드, 생성자, 메서드를 설계하기 위해 사용된다. 오늘은 해당 내용에 대하여 알아보도록 하자. public : public 은 메인 클래스에서의 접근 제한자이며, 이름에서도 느껴지듯이 접근할 수 없는 클래스에 제한이 없고, public을 적용할 수 있는 대상으로는 클래스 , 필드 , 생성자, 메서드 모두 가능하다. protected : protected의 경우 상속이라는 개념과도 연관이 있는데, public와 달리 자식 클래스가 아닌 외부(다른) 패키지의 클래스는 접근을 할 수 없다. 또한..
[Java] 자바 접근 제한자 알아보기 public/private/default/protecte2020-11-22 접근 제한자의 종류는 4가지가 있다. public / protected / default / private이다. 이는 라이브러리 클래스 설계 시 외부(다른) 클래스에서 접근 가능/불가능 여부에 따라 필드, 생성자, 메서드를 설계하기 위해 사용된다. 오늘은 해당 내용에 대하여 알아보도록 하자. public : public 은 메인 클래스에서의 접근 제한자이며, 이름에서도 느껴지듯이 접근할 수 없는 클래스에 제한이 없고, public을 적용할 수 있는 대상으로는 클래스 , 필드 , 생성자, 메서드 모두 가능하다. protected : protected의 경우 상속이라는 개념과도 연관이 있는데, public와 달리 자식 클래스가 아닌 외부(다른) 패키지의 클래스는 접근을 할 수 없다. 또한..
2020.11.22 -
2020-11-20 문제 창영마을에서 정인이의 반란은 실패로 끝났다. (3028번) 테러리스트로 변신한 정인이는 창영마을에 경고를 하려고 한다. 사실 정인이는 창영마을에서 제일 착한사람이다. 따라서, 사람들을 다치지 않게하려고 한다. 유튜브에서 폭발에 대한 동영상을 찾아보다가, 그는 나트륨을 물에 던지면 폭발한다는 사실을 알게 되었다. 정인이는 창영마을의 중심을 지나는 "강산강" 근처에 숨어있다가, 나트륨을 위의 동영상처럼 물에 던질 것이다. 현재 시간과 정인이가 나트륨을 던질 시간이 주어졌을 때, 정인이가 얼마나 숨어있어야 하는지 구하는 프로그램을 작성하시오. (정인이는 적어도 1초를 기다리며, 많아야 24시간을 기다린다.) 입력 첫째 줄에 현재 시간이 hh:mm:ss 형식으로 주어진다. (시, 분, ..
백준 BaekJoon 3029번: 경고 [Java] 자바2020-11-20 문제 창영마을에서 정인이의 반란은 실패로 끝났다. (3028번) 테러리스트로 변신한 정인이는 창영마을에 경고를 하려고 한다. 사실 정인이는 창영마을에서 제일 착한사람이다. 따라서, 사람들을 다치지 않게하려고 한다. 유튜브에서 폭발에 대한 동영상을 찾아보다가, 그는 나트륨을 물에 던지면 폭발한다는 사실을 알게 되었다. 정인이는 창영마을의 중심을 지나는 "강산강" 근처에 숨어있다가, 나트륨을 위의 동영상처럼 물에 던질 것이다. 현재 시간과 정인이가 나트륨을 던질 시간이 주어졌을 때, 정인이가 얼마나 숨어있어야 하는지 구하는 프로그램을 작성하시오. (정인이는 적어도 1초를 기다리며, 많아야 24시간을 기다린다.) 입력 첫째 줄에 현재 시간이 hh:mm:ss 형식으로 주어진다. (시, 분, ..
2020.11.20 -
2020-11-18 문제 Lucky Set이란 정수의 집합이다. 구간 [A,B]란 A보다 크거나 같고, B보다 작거나 같은 모든 정수가 있는 구간이다. 이때, A와 B는 모두 양수이고, B는 A보다 크다. 구간 [A,B]가 Unlucky가 되기 위해선 구간에 속한 모든 정수가 Lucky Set에 없어야 한다. Lucky Set과 N이 주어질 때, N을 포함하는 Unlucky 구간의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 Lucky Set에 포함된 숫자의 개수 L이 주어진다. 둘째 줄에는 L개의 수가 주어진다. 이 수는 1,000보다 작거나 같은 자연수이고, L은 50보다 작거나 같은 자연수이다. 그리고 중복되지 않는다. 마지막 줄에는 N이 주어진다. N은 Lucky Set에서 가장 큰 수보..
백준 BaekJoon 1059번: 수2 [Java] 자바2020-11-18 문제 Lucky Set이란 정수의 집합이다. 구간 [A,B]란 A보다 크거나 같고, B보다 작거나 같은 모든 정수가 있는 구간이다. 이때, A와 B는 모두 양수이고, B는 A보다 크다. 구간 [A,B]가 Unlucky가 되기 위해선 구간에 속한 모든 정수가 Lucky Set에 없어야 한다. Lucky Set과 N이 주어질 때, N을 포함하는 Unlucky 구간의 개수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 Lucky Set에 포함된 숫자의 개수 L이 주어진다. 둘째 줄에는 L개의 수가 주어진다. 이 수는 1,000보다 작거나 같은 자연수이고, L은 50보다 작거나 같은 자연수이다. 그리고 중복되지 않는다. 마지막 줄에는 N이 주어진다. N은 Lucky Set에서 가장 큰 수보..
2020.11.18 -
2020-11-14 문제 준규는 집을 짓고 있다. 준규는 모든 벽 모양을 직각 삼각형으로 만들려고 한다. 적절히 나무를 잘라 삼각형을 만들었지만, 준규는 각도를 측정할 수 있는 도구를 가지고 있지 않다. 어쩔 수 없이 줄자를 이용해 삼각형 세 변의 길이를 측정한 다음, 직각 삼각형인지 아닌지를 알아보려고 한다. 삼각형 세 변의 길이가 주어졌을 때, 직각 삼각형인지 아닌지를 구하는 프로그램을 작성하시오. 입력 입력의 첫째 줄에는 테스트 케이스의 개수 n이 주어진다. 각 테스트 케이스는 세 정수 1 ≤ a, b, c ≤ 40000 으로 이루어져 있다. 세 정수는 삼각형 각 변의 길이를 나타낸다. 출력 각 테스트 케이스마다 "Scenario #i:"를 출력한다. i는 테스트 케이스 번호이며, 1부터 시작한다...
백준 BaekJoon 7510번: 고급 수학 [Java] 자바2020-11-14 문제 준규는 집을 짓고 있다. 준규는 모든 벽 모양을 직각 삼각형으로 만들려고 한다. 적절히 나무를 잘라 삼각형을 만들었지만, 준규는 각도를 측정할 수 있는 도구를 가지고 있지 않다. 어쩔 수 없이 줄자를 이용해 삼각형 세 변의 길이를 측정한 다음, 직각 삼각형인지 아닌지를 알아보려고 한다. 삼각형 세 변의 길이가 주어졌을 때, 직각 삼각형인지 아닌지를 구하는 프로그램을 작성하시오. 입력 입력의 첫째 줄에는 테스트 케이스의 개수 n이 주어진다. 각 테스트 케이스는 세 정수 1 ≤ a, b, c ≤ 40000 으로 이루어져 있다. 세 정수는 삼각형 각 변의 길이를 나타낸다. 출력 각 테스트 케이스마다 "Scenario #i:"를 출력한다. i는 테스트 케이스 번호이며, 1부터 시작한다...
2020.11.14