2021-01-11 우선 Stream 은 자바의 배열 / 리스트 / 맵 등의 컬렉션의 데이터들을 하나씩 참조하여 람다식으로 처리할 수 있는 반복자이다. 기존 자바 7 이전의 반복자 Iterator보다 보다 코드량이 줄었으며, 람다식의 사용으로 간결하고 편리해졌다고 볼 수 있다. 이제 코드를 통해 어떤식으로 사용이 되는지 알아보자. package sStream; public class People { private String name; private int age; public People(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(..
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-09 오늘은 int형 변수와 String 변수를 같이 다루다 보면 자주 접할 수 있음 NumberFormatException에 대하여 알아보도록 하자. 우선 어떠한 상황에서 해당 예외가 발생하게 되는지부터 보도록 하자. package eException; public class main { public static void main(String[] args){ String str = "100"; String str1 = "100 "; int a = Integer.parseInt(str); int b = Integer.parseInt(str1); //공백이 포함되어 있어 예외 발생 //NumberFormatException } } str 변수의 경우 공백없이 100이라는 문자열 데이터가 들어..
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-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-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 ..