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-05 와일드카드는 제네릭 타입을 매개 값이나 리턴 타입으로 사용할 때 구체적인 타입 대신에 사용하는 것으로 코드에서는?로 표현된다. 사용법은 3가지로 나누어 지며, 아래와 같다. 1. 제네릭타입 : 모든 클래스 / 인터페이스 타입이 올 수 있다. 2. 제네릭타입
2020-12-04 (제네릭의 기초적인 개념과 기존 예제가 궁금하면, 아래 링크로 가서 확인하고 오자.) seeminglyjs.tistory.com/184 제네릭에는 다양한 타입들이 들어갈 수 있지만, 특정 경우에는 제네릭에 들어갈 타입을 제한시켜야 하는 경우가 있다. 예를 들자면 어떤 클래스 필드에 age(나이)라는 변수가 있다고 가정해 보자. 이러한 경우에는 해당 제네릭 타입을 숫자로 받아야 하기 때문에 Integer / short / double...과 같은 숫자형 타입으로 한정 지을 수 있다. 이를 제한된 타입 파라미터라고 한다. 그러면 이제 구체적인 코드를 살펴보도록 하자. package Generic1; public class man2{ public static int compareAge(T ..
2020-12-03 제네릭(Generic) 은 클래스 / 인터페이스 / 메서드 등의 타입을 파라미터로 사용할 수 있게 해주는 역할을 한다. 또한 비제네릭 타입의 코드에서 발생하는 불필요한 타입 변환으로 인한 프로그램 성능의 저하를 감소시킬 수 있다는 장점도 있다. (List list = new ArrayList (); 에서 많이 봤을 바로 가 바로 제네릭 표현식이다.) 클래스에서의 제네릭 선언 방법은 아래와 같다. package Generic1; public class man { private T name; //이름 필드 private T bloodtype; //혈액형 필드 public T getName() { return name; } public void setName(T name) { this.na..
2020-12-02 문제 유명한 피타고라스의 정리와 유사한 형태의 피타고라스 기댓값 (Pythagorean Expectation)이 야구와 같은 스포츠 경기에 자주 사용된다. 피타고라스 기댓값은 빌 제임스(Bill James)에 의해 정의되었으며, 이 값은 특정 야구팀이 한 시즌 동안 얼마나 잘 했는지를 평가하는 지표 중 하나로 사용된다. 한 야구팀의 피타고라스 기댓값 W는 아래 식과 같이 정의된다. 여기서 S는 해당 팀의 총 득점 수를, A는 해당 팀의 총 실점 수를 나타낸다. 이 기댓값을 실제 승률과 비교하여, 해당 팀이 한 시즌을 얼마나 잘 보냈는지 평가할 수 있다. 예를 들어, 한화 이글스는 2014 시즌에 619 득점과 889 실점을 했다. 즉, S = 619, A = 889이 되어, 한화 팀의..
2020-12-01 인터페이스는 자바에서의 다형성을 실현하기 위해 객체의 교환성을 높여주는 역할을 한다. 선언 방법으로는 아래와 같이 New -> Interface를 선택해서 간단히 생성할 수 있다. 인터페이스의 특징으로는 상수와 메소드만 선언 가능하며, 생성자를 가질 수 없다. 또한 메서드는 추상 메서드 / 정적 메서드 / 디폴트 메서드 3가지 종류로 나누어진다. 이 중에서 추상 메서드를 사용하려면, 이를 구현하는 구현 클래스가 따로 필요하다.(위의 인터페이스는 추상 메서드 2개를 선언해 두었다.) 아래는 구현 클래스에 대한 내용이다. package interfacePractice; public class move implements arm1, arm2, body{ // 구현하는 모든 인터페이스의 추상..