2021-01-06 인터페이스는 상속과는 달리 두 가지 인터페이스를 한 개의 클래스 내에 모두 구현할 수 있다. 오늘은 이와 같은 방법을 알아보도록 하자. 우선 아래 예제 인터페이스 두 가지 animal / human을 준비하였다. package iInterface; public interface animal { void species(); void sex(); } package iInterface; public interface human { void name(); void age(); } 큰 특징 없이 각 인터페이스별 추상 메서드를 2개씩 선언해 주었다. 이제 구현 클래스로 가서 구체적인 메서드 코드를 작성해보도록 하자. package iInterface; public class integrated ..
2021-01-05 오늘은 Set 컬렉션 중 HashSet에 대하여 알아보도록 하자. 우선 Set의 특성은 중복된 타입의 객체는 저장되지 않는다는 점이며, HashSet 역시 이와 같은 특징을 가지고 있다. 어렵지 않은 내용이니 바로 코드로 구현을 해보자. package hHashSet; import java.util.HashSet; import java.util.Iterator; import java.util.Set; public class main { public static void main(String[] args) { Set set = new HashSet(); //순서없이 저장되며, 중복된 값은 저장되지 않는다. set.add("aaa"); set.add("bbb"); set.add("ccc"..
2021-01-04 문제 2차원 좌표 평면 위에 두 개의 박스(직사각형) P, Q가 놓여 있다. 각 박스의 변은 x축이나 y축에 평행하다. 박스를 연구하는 학수는 이 두 박스의 교차 상태를 파악하여 내부가 겹쳐 있는지 (FACE), 그렇지 않고 선분에서 만나는 지(LINE), 그렇지 않고 한 점에서 만나는지(POINT), 아예 만나지 않는지 (NULL) 구별하려고 한다. 다음 그림은 두 박스의 여러 가지 교차 상태의 예를 보여준다. 입력 표준 입력으로 두 박스의 정보가 한 줄에 하나씩 주어진다. 각 박스의 정보는 왼쪽 아래 꼭짓점 좌표 (x1, y1)과 오른쪽 위 꼭짓점 좌표 (x2, y2)로 구성되는데 이들 좌푯값 x1, y1, x2, y2 (x1 a[3]) { acMax = a[1]; acMin = ..
2021-01-03 오늘은 개인적으로 알고리즘 문제를 풀다가 가장 많이 접했던 예외인 ArrayIndexOutOfBoundsException의 원인과 그 해결방법을 알아보도록 하자. (아무래도 배열을 이용한 문제가 많아서 그런듯. . .) 우선 원인은 예외 이름에서도 느껴지듯이 초기에 정해진 배열의 크기보다 더 많은 양의 데이터를 넣고자 할 때 주로 발생하게 된다. 아래는 ArrayIndexOutOfBoundsException 가 발생하는 코드이다. package eException; public class main { public static void main(String[] args){ int [] arr = new int[3]; for(int i = 0; i
2021-01-02 자바에서의 배열을 복사하는 방법은 여러 가지 있다. for이나 while 같은 반복문을 활용하여 직접 값을 하나씩 넣어주는 방법도 있고 이번 소개할 방법처럼 Arrays의 메서드를 활용하는 방법이 있다. 사용방법은 매우 간단하니 바로 코드를 살펴보자. package aArrays; import java.util.Arrays; public class copyMain { public static void main(String[] args) { int [] arr1 = {1, 2, 3, 4, 5}; int [] arr2 = Arrays.copyOf(arr1, arr1.length); //복사하고자하는 오리지널 배열 넣고, 복사하고자하는 총범위를 뒤에 넣어줌 for(int i =0; i < ..
2021-01-01 문제 상근이는 오락실에서 바구니를 옮기는 오래된 게임을 한다. 스크린은 N칸으로 나누어져 있다. 스크린의 아래쪽에는 M칸을 차지하는 바구니가 있다. (M= (location - (basketSize - 1)) && arr[i] location) { count += 1; location += 1; //사과의 위치가 현재위치보다 크면 한칸 움직이고 움직인 거리도 하나 더해줌 }else { count += 1; location -= 1; //사과의 위치가 현재위치보다 작으면 한칸 움직이고 움직인 거리도 하나 더해줌 } } } } System.out.println(count); } } 출처링크 :www.acmicpc.net/problem/2828 2828번: 사과 담기 게임 상근이는 오락실에..