Java8
-
2021-01-28 오늘은 삼항 연산자라는 것을 알아보자. 이름에서 느껴지듯이 기존에 이항 연산자에서 항이 하나 더 추가된다고 생각하면 된다. (표현이 조금은 이상하지만...) 어렵지 않은 내용이니 바로 코드로 살펴보도록 하자. package tTernary; public class tTernary { public static void main(String[] args) { int a = 10; int b = 11; int c = a > b ? a : b; //c 값은 b의 값을 저장하게 된다. // 삼항 연사자의 코드를 풀이 하면 // a의 값이 b보다 큰가 ? 크면은 a 이고 크지 않으면 b이다. // 이를 다시 한 번 작성해보면 아래와 같다. // a (관계연산) b ? true : false 정도..
[Java] 자바 삼항연산자(Ternary) 알아보기 (중첩삼항연사자)2021-01-28 오늘은 삼항 연산자라는 것을 알아보자. 이름에서 느껴지듯이 기존에 이항 연산자에서 항이 하나 더 추가된다고 생각하면 된다. (표현이 조금은 이상하지만...) 어렵지 않은 내용이니 바로 코드로 살펴보도록 하자. package tTernary; public class tTernary { public static void main(String[] args) { int a = 10; int b = 11; int c = a > b ? a : b; //c 값은 b의 값을 저장하게 된다. // 삼항 연사자의 코드를 풀이 하면 // a의 값이 b보다 큰가 ? 크면은 a 이고 크지 않으면 b이다. // 이를 다시 한 번 작성해보면 아래와 같다. // a (관계연산) b ? true : false 정도..
2021.01.28 -
2021-01-27 자바에서 배열을 사용하다 보면, 자신이 원하는 데이터를 찾고 싶을 때가 있을 것이다. 이를 반복문 for / while문을 돌려가면 찾을 수도 있겠지만, 친절하게도 Arrays에서 이와 같은 문제를 해결하기 위한 기능을 제공한다. 사용방법은 아래와 같다. - 선언 package Arrays_Search; import java.util.Arrays; public class main { public static void main(String[] args) { // 배열의 특정 인덱스값 추출하기 // 배열의 특정 데이터를 입력하면, // 해당 데이터에 맞는 인덱스 넘버를 리턴해준다. String [] arr = {"a", "b", "c", "d","f"}; int index = Arrays..
[Java] 자바 Array(배열)에서 원하는 객체 찾기! binarySearch2021-01-27 자바에서 배열을 사용하다 보면, 자신이 원하는 데이터를 찾고 싶을 때가 있을 것이다. 이를 반복문 for / while문을 돌려가면 찾을 수도 있겠지만, 친절하게도 Arrays에서 이와 같은 문제를 해결하기 위한 기능을 제공한다. 사용방법은 아래와 같다. - 선언 package Arrays_Search; import java.util.Arrays; public class main { public static void main(String[] args) { // 배열의 특정 인덱스값 추출하기 // 배열의 특정 데이터를 입력하면, // 해당 데이터에 맞는 인덱스 넘버를 리턴해준다. String [] arr = {"a", "b", "c", "d","f"}; int index = Arrays..
2021.01.27 -
2021-01-26 객체명만 가지고는 해당 객체가 어느 클래스에 속하는지 종종 한 번에 파악하기 어려운 경우가 있다. 이러한 경우에는 Object 클래스가 가지고 있는 getClass와 같은 메서드를 사용하면 유용한데, 이를 사용하는 방법을 알아보자. package ClassGetName; public class Student { private String name; private String sex; public Student() { } public Student(String name, String sex) { this.name = name; this.sex = sex; } @Override public String toString() { return "이름은 " +name + "이고 성별은 " + s..
[Java] 자바 getClass , forName을 통한 클래스 객체 얻기!2021-01-26 객체명만 가지고는 해당 객체가 어느 클래스에 속하는지 종종 한 번에 파악하기 어려운 경우가 있다. 이러한 경우에는 Object 클래스가 가지고 있는 getClass와 같은 메서드를 사용하면 유용한데, 이를 사용하는 방법을 알아보자. package ClassGetName; public class Student { private String name; private String sex; public Student() { } public Student(String name, String sex) { this.name = name; this.sex = sex; } @Override public String toString() { return "이름은 " +name + "이고 성별은 " + s..
2021.01.26 -
2021-01-25 문제 영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후에는 초코우유를 한 팩 마신다. 초코우유를 한 팩 마신 후에는 바나나우유를 한 팩 마신다. 바나나우유를 한 팩 마신 후에는 딸기우유를 한 팩 마신다. 영학이는 우유 축제가 열리고 있는 우유거리에 왔다. 우유 거리에는 우유 가게들이 일렬로 늘어서 있다. 영학이는 우유 거리의 시작부터 끝까지 걸으면서 우유를 사먹고자 한다. 각각의 우유 가게는 딸기, 초코, 바나나 중 한 종류의 우유만을 취급한다. 각각의 우유 가게 앞에서, 영학이는 우유를 사마시거나, 사마시지 않는다. 우유거리에는 사람이 많기 때문에..
백준 BaekJoon 14720번: 우유 축제 [Java]2021-01-25 문제 영학이는 딸기우유, 초코우유, 바나나우유를 좋아한다. 입맛이 매우 까다로운 영학이는 자신만의 우유를 마시는 규칙이 있다. 맨 처음에는 딸기우유를 한 팩 마신다. 딸기우유를 한 팩 마신 후에는 초코우유를 한 팩 마신다. 초코우유를 한 팩 마신 후에는 바나나우유를 한 팩 마신다. 바나나우유를 한 팩 마신 후에는 딸기우유를 한 팩 마신다. 영학이는 우유 축제가 열리고 있는 우유거리에 왔다. 우유 거리에는 우유 가게들이 일렬로 늘어서 있다. 영학이는 우유 거리의 시작부터 끝까지 걸으면서 우유를 사먹고자 한다. 각각의 우유 가게는 딸기, 초코, 바나나 중 한 종류의 우유만을 취급한다. 각각의 우유 가게 앞에서, 영학이는 우유를 사마시거나, 사마시지 않는다. 우유거리에는 사람이 많기 때문에..
2021.01.25 -
2021-01-23 코딩을 하다 보면 다양한 형태의 변수를 문자열 형태로 바꾸어야 하는 경우가 자주 발생하게 되는데 이를 위해 String 에는 valueOf라는 메서드를 제공하고 있다. 이를 사용한 결과가 어떻게 되는지 확인해보자. package String_valueOf; import java.io.ObjectInputStream.GetField; public class main { public static void main(String[] args) { //각종 타입의 변수들을 문자열로 바꾸어보자! int numInt = 100; long numLo = 1000; double numDou = 100.100; boolean flag = true; char ch = 'A'; } } 위와 같이 서로 다른..
[Java] 자바 valueOf를 이용해 String으로 타입변환 하기2021-01-23 코딩을 하다 보면 다양한 형태의 변수를 문자열 형태로 바꾸어야 하는 경우가 자주 발생하게 되는데 이를 위해 String 에는 valueOf라는 메서드를 제공하고 있다. 이를 사용한 결과가 어떻게 되는지 확인해보자. package String_valueOf; import java.io.ObjectInputStream.GetField; public class main { public static void main(String[] args) { //각종 타입의 변수들을 문자열로 바꾸어보자! int numInt = 100; long numLo = 1000; double numDou = 100.100; boolean flag = true; char ch = 'A'; } } 위와 같이 서로 다른..
2021.01.23 -
2021-01-22 문자열 변수를 사용하다 보면 가끔씩 해당 문자를 대문자로 바꾸어야 하거나 소문자로 바꾸어야 하는 경우가 있다. 이러한 경우 String에서는 toUpperCase/toLowerCase 메서드를 이용해 바꿀 수 있는데, 오늘은 이와 같은 방법을 알아보자. package Upper_Lower; public class main { public static void main(String[] args) { // 입력받은 문자열을 대문자로 바꾸는 방법과 // 소문자로 바꾸는 방법을 알아보자. String name1 = "AAABBB"; String name2 = "aaabbb"; String name3 = "AaaBbb"; //대문자로만 구성되어있는 변수 name1 //소문자로만 구성되어 있는 ..
[Java] 자바 toUpperCase / toLowerCase 사용법2021-01-22 문자열 변수를 사용하다 보면 가끔씩 해당 문자를 대문자로 바꾸어야 하거나 소문자로 바꾸어야 하는 경우가 있다. 이러한 경우 String에서는 toUpperCase/toLowerCase 메서드를 이용해 바꿀 수 있는데, 오늘은 이와 같은 방법을 알아보자. package Upper_Lower; public class main { public static void main(String[] args) { // 입력받은 문자열을 대문자로 바꾸는 방법과 // 소문자로 바꾸는 방법을 알아보자. String name1 = "AAABBB"; String name2 = "aaabbb"; String name3 = "AaaBbb"; //대문자로만 구성되어있는 변수 name1 //소문자로만 구성되어 있는 ..
2021.01.22 -
2021-01-21 문제 선물 포장 공장을 말아먹은 욱제는 계곡에서 백숙을 파느라 학교에 자주 가지 못한다. 하지만 월클의 인생은 피곤한 법! 욱제는 지금처럼 힘든 시기에도 자신을 기다리는 5조5억명의 열렬한 팬들을 위해 가끔씩 학교에 가 줘야 한다. 욱제는 백숙이 끓는 걸 지켜봐야 해서 가게를 오래 비울 수 없다. 그래서 욱제는 한 번 학교에 간 뒤 최소 시간동안 머물다가 모든 팬들과 한 번씩 인사를 하고 학교를 떠나려고 한다. 욱제는 임의의 시각에 학교에 오거나 학교를 떠날 수 있고, 단 한 번의 왕복만 한다. 동시에 여러 팬들에게 인사를 끝낼 수도 있다. 욱제는 잘생겨서 인사하면 팬들이 심쿵사로 바로 쓰러지기 때문에 인사를 하는데 소요되는 시간은 0이라고 하자. 예를 들어 3명의 팬 A, B, C가..
백준 BaekJoon 17262번: 팬덤이 넘쳐흘러 [Java]2021-01-21 문제 선물 포장 공장을 말아먹은 욱제는 계곡에서 백숙을 파느라 학교에 자주 가지 못한다. 하지만 월클의 인생은 피곤한 법! 욱제는 지금처럼 힘든 시기에도 자신을 기다리는 5조5억명의 열렬한 팬들을 위해 가끔씩 학교에 가 줘야 한다. 욱제는 백숙이 끓는 걸 지켜봐야 해서 가게를 오래 비울 수 없다. 그래서 욱제는 한 번 학교에 간 뒤 최소 시간동안 머물다가 모든 팬들과 한 번씩 인사를 하고 학교를 떠나려고 한다. 욱제는 임의의 시각에 학교에 오거나 학교를 떠날 수 있고, 단 한 번의 왕복만 한다. 동시에 여러 팬들에게 인사를 끝낼 수도 있다. 욱제는 잘생겨서 인사하면 팬들이 심쿵사로 바로 쓰러지기 때문에 인사를 하는데 소요되는 시간은 0이라고 하자. 예를 들어 3명의 팬 A, B, C가..
2021.01.21 -
2021-01-19 기존에 변수나 배열과 같은 경우에는 새로운 객체를 만들어서 복사를 진행하면 된다. 그러면 클래스를 복사해서 사용하고자 하면 어떻게 해야 할까? ctrl + c -> ctrl + v를 사용해서 새로운 클래스를 만들어 사용하면 될까?라고 생각할 수 도 있지만 자바 자체에서 이와 같은 고민을 해결해주기 위해 Cloneable이라는 인터페이스를 제공한다. 즉 복사를 하고자 하는 클래스에 implements Cloneable를 붙여주면 이와 같은 클래스를 사용할 수 있다. 바로 코드를 살펴보자. package tThinClone.copy; import java.util.Arrays; public class People implements Cloneable { String name; int ag..
[Java] 자바 ThinClone을 통해서 클래스를 복사해보자!2021-01-19 기존에 변수나 배열과 같은 경우에는 새로운 객체를 만들어서 복사를 진행하면 된다. 그러면 클래스를 복사해서 사용하고자 하면 어떻게 해야 할까? ctrl + c -> ctrl + v를 사용해서 새로운 클래스를 만들어 사용하면 될까?라고 생각할 수 도 있지만 자바 자체에서 이와 같은 고민을 해결해주기 위해 Cloneable이라는 인터페이스를 제공한다. 즉 복사를 하고자 하는 클래스에 implements Cloneable를 붙여주면 이와 같은 클래스를 사용할 수 있다. 바로 코드를 살펴보자. package tThinClone.copy; import java.util.Arrays; public class People implements Cloneable { String name; int ag..
2021.01.19 -
2021-01-18 문제 방탈출 게임을 하던 혜민이는 마지막 문제에 봉착했다. 단서는 다음과 같다. 앞에는 일렬로 놓여진 N개의 버튼이 모두 불이 꺼진 상태로 있다. 0 또는 1로 구성되어 있는 N자리 수가 적힌 쪽지가 있다. 0은 불이 꺼진 버튼, 1은 불이 켜진 버튼을 뜻한다. 불이 켜져 있는 버튼을 누르면 불이 꺼지고, 불이 꺼져 있는 버튼을 누르면 불이 켜진다. 버튼을 누르면 그 버튼 뿐만이 아닌 오른쪽 두 개의 버튼도 같이 눌린다. 혜민이는 현재 모두 불이 꺼진 상태에서 버튼을 최소로 눌러서 쪽지와 똑같은 상태로 만들어야 한다는 것을 알아냈다! 혜민이를 도와줘서 방탈출 게임에 성공하자. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000)가 주어지고 둘째 줄에는 쪽지에 적혀 있는 N자리의 수가 ..
백준 BaekJoon 15729번: 방탈출 [Java]2021-01-18 문제 방탈출 게임을 하던 혜민이는 마지막 문제에 봉착했다. 단서는 다음과 같다. 앞에는 일렬로 놓여진 N개의 버튼이 모두 불이 꺼진 상태로 있다. 0 또는 1로 구성되어 있는 N자리 수가 적힌 쪽지가 있다. 0은 불이 꺼진 버튼, 1은 불이 켜진 버튼을 뜻한다. 불이 켜져 있는 버튼을 누르면 불이 꺼지고, 불이 꺼져 있는 버튼을 누르면 불이 켜진다. 버튼을 누르면 그 버튼 뿐만이 아닌 오른쪽 두 개의 버튼도 같이 눌린다. 혜민이는 현재 모두 불이 꺼진 상태에서 버튼을 최소로 눌러서 쪽지와 똑같은 상태로 만들어야 한다는 것을 알아냈다! 혜민이를 도와줘서 방탈출 게임에 성공하자. 입력 첫째 줄에 N(1 ≤ N ≤ 1,000,000)가 주어지고 둘째 줄에는 쪽지에 적혀 있는 N자리의 수가 ..
2021.01.18 -
2021-01-17 DecimalFormat은 다양한 숫자 데이터를 자신의 원하는 형식으로 나타낼 수 있도록 도와준다. 오늘은 이와 같은 클래스의 사용법을 알아보자. package tFormat; import java.text.DecimalFormat; public class main { public static void main(String[] args) { // 0 10진수의 빈자리는 0으로 채운다. // # 10진수의 빈자리는 채우지 않는다. // . 소수점을 표현 ex) #.0 double num = 11111.1111; DecimalFormat df = new DecimalFormat("0"); System.out.println(df.format(num)); //소숫점 표시안해주어 출력안됨 df..
[Java] 자바 DecimalFormat을 통한 다양한 숫자 포맷 알아보기!2021-01-17 DecimalFormat은 다양한 숫자 데이터를 자신의 원하는 형식으로 나타낼 수 있도록 도와준다. 오늘은 이와 같은 클래스의 사용법을 알아보자. package tFormat; import java.text.DecimalFormat; public class main { public static void main(String[] args) { // 0 10진수의 빈자리는 0으로 채운다. // # 10진수의 빈자리는 채우지 않는다. // . 소수점을 표현 ex) #.0 double num = 11111.1111; DecimalFormat df = new DecimalFormat("0"); System.out.println(df.format(num)); //소숫점 표시안해주어 출력안됨 df..
2021.01.17 -
2021-01-15 문제 목장 주인인 상배는 양과 염소들을 같이 기르고 있다. 기르는 양과 염소는 각각 한 마리 이상이다. 양과 염소는 같은 사료를 먹고, 양 한 마리는 하루에 사료를 정확히 a 그램 먹고, 염소 한 마리는 하루에 정확히 b 그램을 먹는다고 한다. 상배는 매일 아침 양과 염소가 각각 몇 마리인지를 확인하는 작업을 한다. 양과 염소가 각각 몇 마리인지 확인할 때, 양과 염소들이 돌아 다녀서 정확하게 그 수를 구하는 것이 쉽지 않았다. 대신에 양과 염소가 전체 몇 마리인지를 확인하고, 또 양과 염소가 어제 하루 동안 소비한 전체 사료의 양만 확인해서 양과 염소가 각각 몇 마리 인지를 알려고 한다. 상배가 확인한 양과 염소 전체가 n마리이고, 어제 하루 동안 소비한 전체 사료의 양이 w그램일 ..
백준 BaekJoon 16283번: Farm [Java]2021-01-15 문제 목장 주인인 상배는 양과 염소들을 같이 기르고 있다. 기르는 양과 염소는 각각 한 마리 이상이다. 양과 염소는 같은 사료를 먹고, 양 한 마리는 하루에 사료를 정확히 a 그램 먹고, 염소 한 마리는 하루에 정확히 b 그램을 먹는다고 한다. 상배는 매일 아침 양과 염소가 각각 몇 마리인지를 확인하는 작업을 한다. 양과 염소가 각각 몇 마리인지 확인할 때, 양과 염소들이 돌아 다녀서 정확하게 그 수를 구하는 것이 쉽지 않았다. 대신에 양과 염소가 전체 몇 마리인지를 확인하고, 또 양과 염소가 어제 하루 동안 소비한 전체 사료의 양만 확인해서 양과 염소가 각각 몇 마리 인지를 알려고 한다. 상배가 확인한 양과 염소 전체가 n마리이고, 어제 하루 동안 소비한 전체 사료의 양이 w그램일 ..
2021.01.15 -
2021-01-14 TreeMap에서는 Tree라는 개념이 중요하다. 이는 이진트리 구조를 뜻하는데, 아래 보이는 노드들이 바로 이진트리 형태의 구조이다. 맨 위의 시작 노드를 보통 루트(root)라고 불리며, 나머지는 n개의 자식 노드들로 구성되어 있다. (하위 노드 위에 루트 노드를 제외한 인접한 상위 노드가 있다면 그 상위 노드를 부모 노드라고 부르기도 한다.) 해당 구조를 자세히 보면 같은 자식이라도 왼쪽은 작은 자식 오른쪽은 큰 자식이라고 된 것을 볼 수 있는데, 이는 마찬가지로 아래 이진트리를 보면 이해가 쉬울 것이다. 부모(상위) 노드를 기준으로 큰 값은 우측 작은 값은 좌측에 저장된다. 자 이제 tree 구조 설명을 됐으니 TreeMap을 살펴보자. TreeMap의 가장 큰 장점은 객체를 ..
[Java] 자바 TreeMap 컬렉션에 대하여 알아보자!2021-01-14 TreeMap에서는 Tree라는 개념이 중요하다. 이는 이진트리 구조를 뜻하는데, 아래 보이는 노드들이 바로 이진트리 형태의 구조이다. 맨 위의 시작 노드를 보통 루트(root)라고 불리며, 나머지는 n개의 자식 노드들로 구성되어 있다. (하위 노드 위에 루트 노드를 제외한 인접한 상위 노드가 있다면 그 상위 노드를 부모 노드라고 부르기도 한다.) 해당 구조를 자세히 보면 같은 자식이라도 왼쪽은 작은 자식 오른쪽은 큰 자식이라고 된 것을 볼 수 있는데, 이는 마찬가지로 아래 이진트리를 보면 이해가 쉬울 것이다. 부모(상위) 노드를 기준으로 큰 값은 우측 작은 값은 좌측에 저장된다. 자 이제 tree 구조 설명을 됐으니 TreeMap을 살펴보자. TreeMap의 가장 큰 장점은 객체를 ..
2021.01.14 -
2021-01-13 자바의 상속관계를 구현하는 과정 중 자식 클래스의 생성자에서 컴파일 오류가 발생하는 것을 간혹 목격할 수 있는데, 이와 같은 오류를 해결하는 방법을 알아보자. 우선 아래는 예제로 사용될 부모 클래스이다. package eException2; public class Parent { String name; int age; public Parent(String name, int age) { this.name = name; this.age = age; } } 이후 자식 클래스에서 성별이라는 필드를 추가해 새로운 생성자를 만들 예정이다. 하지만 위와 같이 생성자에서 컴파일 오류가 발생하게 된다. 분명 extends로 Parent를 물려받아 필드 name / age를 사용할 수 있는데, 실제 코..
[Java] 자바 상속된 자식 클래스의 생성자 컴파일 오류 해결방법!2021-01-13 자바의 상속관계를 구현하는 과정 중 자식 클래스의 생성자에서 컴파일 오류가 발생하는 것을 간혹 목격할 수 있는데, 이와 같은 오류를 해결하는 방법을 알아보자. 우선 아래는 예제로 사용될 부모 클래스이다. package eException2; public class Parent { String name; int age; public Parent(String name, int age) { this.name = name; this.age = age; } } 이후 자식 클래스에서 성별이라는 필드를 추가해 새로운 생성자를 만들 예정이다. 하지만 위와 같이 생성자에서 컴파일 오류가 발생하게 된다. 분명 extends로 Parent를 물려받아 필드 name / age를 사용할 수 있는데, 실제 코..
2021.01.13 -
2021-01-10 문제 돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 4x개 만큼 가져갈 수 있다. 즉, 가능한 개수는 1, 4, 16, 64, ...개 이다. 4x개만큼 돌을 가져갈 수 있는 방법이 없는 사람이 게임을 지게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다. 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000) 출력 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. import java.util.Scanner; public class TemplateA { public static ..
백준 BaekJoon 9661번: 돌 게임7 [Java]2021-01-10 문제 돌 게임은 두 명이서 즐기는 재밌는 게임이다. 탁자 위에 돌 N개가 있다. 상근이와 창영이는 턴을 번갈아가면서 돌을 가져가며, 돌은 4x개 만큼 가져갈 수 있다. 즉, 가능한 개수는 1, 4, 16, 64, ...개 이다. 4x개만큼 돌을 가져갈 수 있는 방법이 없는 사람이 게임을 지게 된다. 두 사람이 완벽하게 게임을 했을 때, 이기는 사람을 구하는 프로그램을 작성하시오. 게임은 상근이가 먼저 시작한다. 입력 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 1,000,000,000,000) 출력 상근이가 게임을 이기면 SK를, 창영이가 게임을 이기면 CY을 출력한다. import java.util.Scanner; public class TemplateA { public static ..
2021.01.10 -
2021-01-08 데몬스레드는 쉽게 말해서 주스레드의 하위 스레드라고 할 수 있다. 즉 주스레드의 보조적인 역할을 수행하게 되며, 주스레드가 종료될 경우 데몬스레드도 같이 종료되게 된다. 바로 코드로 살펴보도록 하자. 우선 Thread를 상속받는 두개의 클래스를 만들어 주었으며, 내용은 아래와 같다. package Demon; public class Thread1 extends Thread { @Override public void run() { while(true) { System.out.println("Thread1 is Running . . ."); } } } package Demon; public class Thread2 extends Thread { @Override public void ru..
[Java] 자바 데몬스레드에 대하여 알아보자! [Daemon Thread]2021-01-08 데몬스레드는 쉽게 말해서 주스레드의 하위 스레드라고 할 수 있다. 즉 주스레드의 보조적인 역할을 수행하게 되며, 주스레드가 종료될 경우 데몬스레드도 같이 종료되게 된다. 바로 코드로 살펴보도록 하자. 우선 Thread를 상속받는 두개의 클래스를 만들어 주었으며, 내용은 아래와 같다. package Demon; public class Thread1 extends Thread { @Override public void run() { while(true) { System.out.println("Thread1 is Running . . ."); } } } package Demon; public class Thread2 extends Thread { @Override public void ru..
2021.01.08 -
2021-01-07 문제 ACM-ICPC 대회의 대회장은 R행 C열의 직사각형 형태로 좌석이 배치되어 있다. 대회가 시작하기 전에는 참가자들이 아무것도 만지면 안 되기 때문에 진행자는 'Do not touch ANYTHING!!!'을 연신 외친다. 하지만, 진행자가 성대결절에 걸리면서 'Do not touch ANYTHING!!!'을 외칠 수 없는 처지가 되었다. 따라서 주최측은 CCTV를 설치하여 참가자들을 감시하려고 한다. 이때, 각 CCTV는 N행 N열의 직사각형 영역의 좌석을 촬영할 수 있다. 모든 좌석을 전부 촬영하도록 CCTV를 배치할 때, 최소 몇 개의 CCTV가 필요할까? 입력 첫 번째 줄에 좌석의 세로 크기, 가로 크기 R, C와 한 대의 CCTV가 수용할 수 있는 범위 N이 주어진다. ..
백준 BaekJoon 13136번: Do Not Touch Anything [Java]2021-01-07 문제 ACM-ICPC 대회의 대회장은 R행 C열의 직사각형 형태로 좌석이 배치되어 있다. 대회가 시작하기 전에는 참가자들이 아무것도 만지면 안 되기 때문에 진행자는 'Do not touch ANYTHING!!!'을 연신 외친다. 하지만, 진행자가 성대결절에 걸리면서 'Do not touch ANYTHING!!!'을 외칠 수 없는 처지가 되었다. 따라서 주최측은 CCTV를 설치하여 참가자들을 감시하려고 한다. 이때, 각 CCTV는 N행 N열의 직사각형 영역의 좌석을 촬영할 수 있다. 모든 좌석을 전부 촬영하도록 CCTV를 배치할 때, 최소 몇 개의 CCTV가 필요할까? 입력 첫 번째 줄에 좌석의 세로 크기, 가로 크기 R, C와 한 대의 CCTV가 수용할 수 있는 범위 N이 주어진다. ..
2021.01.07 -
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 ..
[Java] 자바 인터페이스 다중 구현 클래스 알아보기! [Interface]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.06 -
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"..
[Java] Set 컬렉션의 HashSet을 알아보자!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.05 -
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 = ..
백준 BaekJoon 15973번: 두 박스 [Java]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.04 -
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
[Java] 자바 예외 ArrayIndexOutOfBoundsException 처리방법!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.03