Java8
-
2021-03-29 문제 상근이는 보통 사람들이 사는 것과는 조금 다른 삶을 사는 사람이다. 상근이는 이런 사람들의 시선이 부담스럽기 때문에, 자신만의 숫자를 개발하기로 했다. 바로 그 이름은 팩토리얼 진법이다. 팩토리얼 진법은 각 자리에 올 수 있는 숫자는 0부터 9까지로 10진법과 거의 비슷하다. 하지만, 읽는 법은 조금 다르다. 팩토리얼 진법에서는 i번 자리의 값을 ai×i!로 계산한다. 즉, 팩토리얼 진법에서 719는 10진법에서 53과 같다. 그 이유는 7×3! + 1×2! + 9×1! = 53이기 때문이다. 팩토리얼 진법으로 작성한 숫자가 주어졌을 때, 10진법으로 읽은 값을 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루..
백준 BaekJoon 5692번: 팩토리얼 진법2021-03-29 문제 상근이는 보통 사람들이 사는 것과는 조금 다른 삶을 사는 사람이다. 상근이는 이런 사람들의 시선이 부담스럽기 때문에, 자신만의 숫자를 개발하기로 했다. 바로 그 이름은 팩토리얼 진법이다. 팩토리얼 진법은 각 자리에 올 수 있는 숫자는 0부터 9까지로 10진법과 거의 비슷하다. 하지만, 읽는 법은 조금 다르다. 팩토리얼 진법에서는 i번 자리의 값을 ai×i!로 계산한다. 즉, 팩토리얼 진법에서 719는 10진법에서 53과 같다. 그 이유는 7×3! + 1×2! + 9×1! = 53이기 때문이다. 팩토리얼 진법으로 작성한 숫자가 주어졌을 때, 10진법으로 읽은 값을 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루..
2021.03.29 -
2021-03-07 - Call By Value 바로 결론부터 말하자면 자바는 Call By Value와 같은 특징을 가지고 있다. 아래의 코드를 보자. package StringCallByValue; public class Main { public static void stringSwap1(String str1, String str2) { String temp = str1; str1 = str2; str2 = temp; } //String 변수 2개를 전달받아 swap 해주는 간단한 메서드 선언 public static void main(String[] args) { String str1 = "aaa"; String str2 = "bbb"; System.out.println(str1 + " / " + ..
[Java] java는 Call By Value인가? Call By Reference인가?2021-03-07 - Call By Value 바로 결론부터 말하자면 자바는 Call By Value와 같은 특징을 가지고 있다. 아래의 코드를 보자. package StringCallByValue; public class Main { public static void stringSwap1(String str1, String str2) { String temp = str1; str1 = str2; str2 = temp; } //String 변수 2개를 전달받아 swap 해주는 간단한 메서드 선언 public static void main(String[] args) { String str1 = "aaa"; String str2 = "bbb"; System.out.println(str1 + " / " + ..
2021.03.07 -
2021-03-06 -정의 InputStream과 OutPutStream모두 스트림 클래스의 최상위 클래스로 모두 추상 클래스이다. 때문에 자신의 new 연산자로 는 객체를 생성할 수 없으며, 자식 클래스 및 System 객체 자체를 매개 값으로 받아야 한다. (전체 코드는 게시물 맨 아래에 올려두었다.) - 선언 InputStream is = System.in; OutputStream os = System.out; byte [] checkByte = new byte [100]; int size = -1; // 입력된 데이터가 더이상 있는지 여부를 체크할 // size 변수 -1일 경우 더 이상의 데이터가 없다. 선언부에서는 입력/출력 스트림을 모두 System.in /. out를 매개 값으로 받아 객체..
[Java] InputStream 과 OutputStream 간의 스트림 통신2021-03-06 -정의 InputStream과 OutPutStream모두 스트림 클래스의 최상위 클래스로 모두 추상 클래스이다. 때문에 자신의 new 연산자로 는 객체를 생성할 수 없으며, 자식 클래스 및 System 객체 자체를 매개 값으로 받아야 한다. (전체 코드는 게시물 맨 아래에 올려두었다.) - 선언 InputStream is = System.in; OutputStream os = System.out; byte [] checkByte = new byte [100]; int size = -1; // 입력된 데이터가 더이상 있는지 여부를 체크할 // size 변수 -1일 경우 더 이상의 데이터가 없다. 선언부에서는 입력/출력 스트림을 모두 System.in /. out를 매개 값으로 받아 객체..
2021.03.06 -
2021-03-01 - 정의 Reader는 FileReader / BufferedReader / InputStreamReader의 최상위 클래스이다. 오늘은 문자열 스트림을 받아들이는 이 Reader(문자열 기반 스트림 최상위 클래스) 클래스에 대하여 알아보도록 하자. - 특징 Reader reader = System.in; 기존의 inputstream은 System.in을 매개 값으로 받아 객체를 생성할 수 있었다. 하지만 Reader 클래스의 경우 문자열 스트림이기 때문에 직접적으로 inputstream을 받아들일 수 없고 반드시 문자열 스트림 타입으로 변환된 자식 클래스를 받아들여야지 객체가 생성된다. ( Reader 역시 추상 클래스이기 때문에 자기 자신을 new 연산자를 통해 객체를 생성할 수 ..
[Java] Class Reader 문자열입력 스트림 클래스 알아보기.2021-03-01 - 정의 Reader는 FileReader / BufferedReader / InputStreamReader의 최상위 클래스이다. 오늘은 문자열 스트림을 받아들이는 이 Reader(문자열 기반 스트림 최상위 클래스) 클래스에 대하여 알아보도록 하자. - 특징 Reader reader = System.in; 기존의 inputstream은 System.in을 매개 값으로 받아 객체를 생성할 수 있었다. 하지만 Reader 클래스의 경우 문자열 스트림이기 때문에 직접적으로 inputstream을 받아들일 수 없고 반드시 문자열 스트림 타입으로 변환된 자식 클래스를 받아들여야지 객체가 생성된다. ( Reader 역시 추상 클래스이기 때문에 자기 자신을 new 연산자를 통해 객체를 생성할 수 ..
2021.03.01 -
2021-02-25 - 정의 모든 출력 스트림의 최상위 클래스로 모든 바이트 기반의 입력 스트림은 OutputStream을 상속받아 사용한다. 자바 API에서의 정의는 아래와 같다. This abstract class is the superclass of all classes representing an output stream of bytes. An output stream accepts output bytes and sends them to some sink. Applications that need to define a subclass of OutputStream must always provide at least a method that writes one byte of output. 이 추상 클..
[Java] Class OutputStream 입력 스트림 클래스 알아보기.2021-02-25 - 정의 모든 출력 스트림의 최상위 클래스로 모든 바이트 기반의 입력 스트림은 OutputStream을 상속받아 사용한다. 자바 API에서의 정의는 아래와 같다. This abstract class is the superclass of all classes representing an output stream of bytes. An output stream accepts output bytes and sends them to some sink. Applications that need to define a subclass of OutputStream must always provide at least a method that writes one byte of output. 이 추상 클..
2021.02.25 -
2021-02-21 모든 입력 스트림의 최상위 클래스로 모든 바이트 기반의 입력 스트림은 InputStream을 상속받아 사용한다. 자바 API에서의 정의는 아래와 같다. - 출처 : java API ( 글의 내용의 바탕은 API 기준으로 작성되었다.) This abstract class is the superclass of all classes representing an input stream of bytes. Applications that need to define a subclass of InputStream must always provide a method that returns the next byte of input. ( 이 추상 클래스는 바이트의 입력 스트림을 나타내는 모든 클래스의 슈..
[Java] Class InputStream 입력 스트림 클래스 알아보기.2021-02-21 모든 입력 스트림의 최상위 클래스로 모든 바이트 기반의 입력 스트림은 InputStream을 상속받아 사용한다. 자바 API에서의 정의는 아래와 같다. - 출처 : java API ( 글의 내용의 바탕은 API 기준으로 작성되었다.) This abstract class is the superclass of all classes representing an input stream of bytes. Applications that need to define a subclass of InputStream must always provide a method that returns the next byte of input. ( 이 추상 클래스는 바이트의 입력 스트림을 나타내는 모든 클래스의 슈..
2021.02.21 -
2021-02-17 String의 Split과 달리 StringTokenizer는 문자열을 문자 자체로 구분하는데, 이를 토큰이라고 표현하기도 한다. 오늘은 이 StringTokenizer의 사용법을 알아보도록 하자. - 선언 StringTokenizer st = new StringTokenizer(name, " "); 자바 API중 하나의 클래스이기 때문에 객체로 만들어서 사용해 주어야 한다. 또한 선언 시 2가지의 매개 값을 주어야 하는데 첫 번째는 토큰화 하고 싶은 스트링 객체이고, 두 번째는 이러한 문자 토큰을 구분 지어줄 delimiter를 넣어준다. 사용할 예제는 아래와 같이 규칙적인 여러 공백을 가지는 문자열로 아래와 같다. String name = "aaa bbb ccc ddd fff"; ..
[Java] StringTokenizer 를 통한 문자열 나누기.2021-02-17 String의 Split과 달리 StringTokenizer는 문자열을 문자 자체로 구분하는데, 이를 토큰이라고 표현하기도 한다. 오늘은 이 StringTokenizer의 사용법을 알아보도록 하자. - 선언 StringTokenizer st = new StringTokenizer(name, " "); 자바 API중 하나의 클래스이기 때문에 객체로 만들어서 사용해 주어야 한다. 또한 선언 시 2가지의 매개 값을 주어야 하는데 첫 번째는 토큰화 하고 싶은 스트링 객체이고, 두 번째는 이러한 문자 토큰을 구분 지어줄 delimiter를 넣어준다. 사용할 예제는 아래와 같이 규칙적인 여러 공백을 가지는 문자열로 아래와 같다. String name = "aaa bbb ccc ddd fff"; ..
2021.02.17 -
2021-02-16 Set / Map 컬렉션일 경우 상관이 없겠지만, list 함수는 중복된 값이 다수 들어가 있을 가능성이 있다. 이러한 경우 contains를 통해 foreach문을 돌면서 비교하는 방법도 있겠지만 Stream을 이용하면 좀 더 손쉽게 중복처리를 할 수 있다. 오늘은 이와 같은 방법을 알아보도록 하자. - 에제 코드 package sStream; public class People { private String name; private int age; public People(String name, int age) { this.name = name; this.age = age; }// 생성자 //// getter / setter public String getName() { retur..
[Java] Stream 중복된 값 제거 /필터링(distinct)2021-02-16 Set / Map 컬렉션일 경우 상관이 없겠지만, list 함수는 중복된 값이 다수 들어가 있을 가능성이 있다. 이러한 경우 contains를 통해 foreach문을 돌면서 비교하는 방법도 있겠지만 Stream을 이용하면 좀 더 손쉽게 중복처리를 할 수 있다. 오늘은 이와 같은 방법을 알아보도록 하자. - 에제 코드 package sStream; public class People { private String name; private int age; public People(String name, int age) { this.name = name; this.age = age; }// 생성자 //// getter / setter public String getName() { retur..
2021.02.16 -
2021-02-15 많은 Thread들이 동시에 수행이 된다면 자신이 원하는 결과를 얻지 못하고, 원치 않는 결과물이 나올 수 도 있다. 이럴 경우를 대비해서 자바에서는 Thread들 간의 우선순위를 정해 혼란을 방지하고 먼저 수행되야할 Thread와 그 이후에 수행되어야 할 Thread를 정할 수 있는데, 오늘은 그 방법을 알아보도록 하자. - 실행 코드 package Thread; public class main { public static void main(String[] args) { Thread thread1 = new Thread(() -> { for(int i = 0; i< 5; i++) { System.out.println("thread1 실행중입니다 . . . ."); } System.o..
[Java] Thread 우선순위 정하기 (스레드 우선순위)2021-02-15 많은 Thread들이 동시에 수행이 된다면 자신이 원하는 결과를 얻지 못하고, 원치 않는 결과물이 나올 수 도 있다. 이럴 경우를 대비해서 자바에서는 Thread들 간의 우선순위를 정해 혼란을 방지하고 먼저 수행되야할 Thread와 그 이후에 수행되어야 할 Thread를 정할 수 있는데, 오늘은 그 방법을 알아보도록 하자. - 실행 코드 package Thread; public class main { public static void main(String[] args) { Thread thread1 = new Thread(() -> { for(int i = 0; i< 5; i++) { System.out.println("thread1 실행중입니다 . . . ."); } System.o..
2021.02.15 -
2021-02-14 문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다. 출력 첫째 줄에 N!을 출력한다. 소스코드 import java.util.Scanner; public class TemplateA { public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.println("숫자를 입력해주세요."); int input = scan.nextInt(); int [] arr = new int[input]; int sum = 1; for(int i = 0; i < input; i++) { arr[i] = i..
백준 BaekJoon 10872번: 팩토리얼 [Java]2021-02-14 문제 0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 정수 N(0 ≤ N ≤ 12)가 주어진다. 출력 첫째 줄에 N!을 출력한다. 소스코드 import java.util.Scanner; public class TemplateA { public static void main(String[] args){ Scanner scan = new Scanner(System.in); System.out.println("숫자를 입력해주세요."); int input = scan.nextInt(); int [] arr = new int[input]; int sum = 1; for(int i = 0; i < input; i++) { arr[i] = i..
2021.02.14 -
2021-02-13 enum에는 단순 열거 상수형 필드 값만 주는 것이 아닌, 생성자를 통해서 새로운 열거 상수와 대응하는 데이터를 생성자를 통해서 연결시킬 수 있는데, 오늘은 그 방법을 알아보자. - 전체코드 생성자가 있다는 것은 매개변수 값을 줄 수 있다는 소리이다. 하지만 방법이 조금 특이하다. 일단 아래 전체 코드를 한번 쭉 살펴보자. package practice_00_enum; public class Main3 { // 열거타입은 클래스 내부에서도 생성할 수 있다. public enum Number{ NO_1("홍길동"), NO_2("둘리"), NO_3("고길동"); // 마지막 열거상수 소괄호 옆에는 ; 을 적어주어야 한다. private String name; // 열겨형 상수와는 다른 값..
[Java] enum의 생성자와 열거상수 필드 알아보기.2021-02-13 enum에는 단순 열거 상수형 필드 값만 주는 것이 아닌, 생성자를 통해서 새로운 열거 상수와 대응하는 데이터를 생성자를 통해서 연결시킬 수 있는데, 오늘은 그 방법을 알아보자. - 전체코드 생성자가 있다는 것은 매개변수 값을 줄 수 있다는 소리이다. 하지만 방법이 조금 특이하다. 일단 아래 전체 코드를 한번 쭉 살펴보자. package practice_00_enum; public class Main3 { // 열거타입은 클래스 내부에서도 생성할 수 있다. public enum Number{ NO_1("홍길동"), NO_2("둘리"), NO_3("고길동"); // 마지막 열거상수 소괄호 옆에는 ; 을 적어주어야 한다. private String name; // 열겨형 상수와는 다른 값..
2021.02.13 -
2021-02-12 Scanner 에는 String을 입력받는 메서드 next()와 nextLine() 이 있는데, 오늘은 이 둘의 차이를 알아보도록 하자. - Scanner.next() package nextLineVsNext; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str1 = scan.next(); // 우선 next의 경우 공백문자를 받아들일 수가 없다. // 위와 같이 입력 "a a"와 같은 결과를 주었다고 보자. System.out.println("str1 -> " + str1); } } 출력결과를..
[Java] Scanner / next() 와 nextLine() 차이를 알아보자.2021-02-12 Scanner 에는 String을 입력받는 메서드 next()와 nextLine() 이 있는데, 오늘은 이 둘의 차이를 알아보도록 하자. - Scanner.next() package nextLineVsNext; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str1 = scan.next(); // 우선 next의 경우 공백문자를 받아들일 수가 없다. // 위와 같이 입력 "a a"와 같은 결과를 주었다고 보자. System.out.println("str1 -> " + str1); } } 출력결과를..
2021.02.12 -
2021-02-11 너비 우선 탐색(Breadth-first search, BFS)은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법이다. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 검색을 적용한다. OPEN List는 큐를 사용해야만 레벨 순서대로 접근이 가능하다. (출처 위키피디아) 사실 말은 조금 어려울 수 있어 그림으로 다시 한번 설명하겠다. 아래의 예제를 보자. BFS로 1번 정점부터 시작해 탐색을 진행해 보겠다. 순서는 아래와 같다. 1 - > 1번 정점이 큐에 들어가게 된다. 2 - > 1번 정점과 인접해 있는 두 개의 접점 2번과 4번 정점을 큐에 담는다. 3 - > 1번 정점과 인접한 곳..
[Java] 너비 우선 탐색 BFS 대하여 알아보자2021-02-11 너비 우선 탐색(Breadth-first search, BFS)은 맹목적 탐색방법의 하나로 시작 정점을 방문한 후 시작 정점에 인접한 모든 정점들을 우선 방문하는 방법이다. 더 이상 방문하지 않은 정점이 없을 때까지 방문하지 않은 모든 정점들에 대해서도 너비 우선 검색을 적용한다. OPEN List는 큐를 사용해야만 레벨 순서대로 접근이 가능하다. (출처 위키피디아) 사실 말은 조금 어려울 수 있어 그림으로 다시 한번 설명하겠다. 아래의 예제를 보자. BFS로 1번 정점부터 시작해 탐색을 진행해 보겠다. 순서는 아래와 같다. 1 - > 1번 정점이 큐에 들어가게 된다. 2 - > 1번 정점과 인접해 있는 두 개의 접점 2번과 4번 정점을 큐에 담는다. 3 - > 1번 정점과 인접한 곳..
2021.02.11 -
2021-02-10 여러 개의 스레드를 사용하다 보면, 스레드 간의 이름이 혼동되는 상황이 발생할 수 있다. 이 경우를 대비하여 스레드 간의 이름을 설정하는 방법이 존재하는데 오늘은 이와 같은 방법을 알아보자. 예제 스레드 2개 package Thread; public class Thread_A extends Thread{ public Thread_A() { setName("Thread_A"); } @Override public void run() { for(int i = 0; i < 5; i++) { System.out.println("상속받은 Thread_A 클래스가 실행 중 입니다."); } } } 스레드는 총 2가지 스레드를 사용할 것이다. 하나는 클래스에서 Thread를 상속받아 구현한 스레드(..
[Java] Thread 이름 설정하는 방법 알아보기.2021-02-10 여러 개의 스레드를 사용하다 보면, 스레드 간의 이름이 혼동되는 상황이 발생할 수 있다. 이 경우를 대비하여 스레드 간의 이름을 설정하는 방법이 존재하는데 오늘은 이와 같은 방법을 알아보자. 예제 스레드 2개 package Thread; public class Thread_A extends Thread{ public Thread_A() { setName("Thread_A"); } @Override public void run() { for(int i = 0; i < 5; i++) { System.out.println("상속받은 Thread_A 클래스가 실행 중 입니다."); } } } 스레드는 총 2가지 스레드를 사용할 것이다. 하나는 클래스에서 Thread를 상속받아 구현한 스레드(..
2021.02.10 -
2021-02-09 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. (출처 : 위키피디아 ) 즉 기존의 싱글 스레드가 아닌 멀티스레드를 사용하기 위해서 이와 같이 따로 스레드를 만들어주어야 하는데, 오늘은 그 방법을 알아보자. 방법 1.람다식으로 Runnable 구현하기 package Thread; public class main { public static void main(String[] args) { Thread thread1 = new Thread(()-> {..
[Java] Thread를 선언(생성) 하는 방법 알아보기.2021-02-09 스레드(thread)는 어떠한 프로그램 내에서, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다. 일반적으로 한 프로그램은 하나의 스레드를 가지고 있지만, 프로그램 환경에 따라 둘 이상의 스레드를 동시에 실행할 수 있다. 이러한 실행 방식을 멀티스레드(multithread)라고 한다. (출처 : 위키피디아 ) 즉 기존의 싱글 스레드가 아닌 멀티스레드를 사용하기 위해서 이와 같이 따로 스레드를 만들어주어야 하는데, 오늘은 그 방법을 알아보자. 방법 1.람다식으로 Runnable 구현하기 package Thread; public class main { public static void main(String[] args) { Thread thread1 = new Thread(()-> {..
2021.02.09 -
2021-02-08 문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 입력 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. 출력 각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다. Source Code import java.util.Scanner; public class TemplateA { public static void main(String[] args){ Scanner scan = new Scanner(System.in); int ..
백준 BaekJoon 4153번: 직각삼각형 [Java]2021-02-08 문제 과거 이집트인들은 각 변들의 길이가 3, 4, 5인 삼각형이 직각 삼각형인것을 알아냈다. 주어진 세변의 길이로 삼각형이 직각인지 아닌지 구분하시오. 입력 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. 출력 각 입력에 대해 직각 삼각형이 맞다면 "right", 아니라면 "wrong"을 출력한다. Source Code import java.util.Scanner; public class TemplateA { public static void main(String[] args){ Scanner scan = new Scanner(System.in); int ..
2021.02.08 -
2021-02-04 자바에서 Annotation이라는 주석과 같은 형태로 사용되는 코드가 있다. 흔히 상속 간에 메서드 재정의에서 사용되는 @Override가 대표적인 어노테이션이라고 할 수 있다. 오늘은 이 어노테이션의 선언과 엘리먼트 타입을 간단히 알아보도록 하자. 우선 선언하는 방법을 알아보도록 하자. package aAnotation; public @interface DefineAno { // interface 앞에 간단히 @를 붙여주면 어노테이션 인터페이스가 만들어진다. // anotation은 자신의 element 를 가질 수가 있다. int numEl() default 1; // int 형 element를 가지고 default 값은 1이다. String strEl(); // String 형 ..
[Java] 자바 어노테이션 Annotation 선언과 엘리먼트 타입.2021-02-04 자바에서 Annotation이라는 주석과 같은 형태로 사용되는 코드가 있다. 흔히 상속 간에 메서드 재정의에서 사용되는 @Override가 대표적인 어노테이션이라고 할 수 있다. 오늘은 이 어노테이션의 선언과 엘리먼트 타입을 간단히 알아보도록 하자. 우선 선언하는 방법을 알아보도록 하자. package aAnotation; public @interface DefineAno { // interface 앞에 간단히 @를 붙여주면 어노테이션 인터페이스가 만들어진다. // anotation은 자신의 element 를 가질 수가 있다. int numEl() default 1; // int 형 element를 가지고 default 값은 1이다. String strEl(); // String 형 ..
2021.02.04 -
2021-02-03 자바에서 배열 사용간 배열 내부의 데이터들의 중복된 값을 제거하고 싶을 수가 있다. 이러한 경우에서의 해결방법을 알아보자. 1. Set 컬렉션 사용 package ArraysOverlap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.stream.Stream; public class main { public static void main(String[] args) { //방법 1. int [] arr = {1,1,1,2,3,4,5,5,5,6,7}; //중복된 값을 다수 가지는 int 배열 선언 Set set = new HashSet(); // set의 자료 구조를 사..
[Java] 자바 배열 중복값(Overlap) 제거 / 처리/ 방법 알아보기.2021-02-03 자바에서 배열 사용간 배열 내부의 데이터들의 중복된 값을 제거하고 싶을 수가 있다. 이러한 경우에서의 해결방법을 알아보자. 1. Set 컬렉션 사용 package ArraysOverlap; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import java.util.stream.Stream; public class main { public static void main(String[] args) { //방법 1. int [] arr = {1,1,1,2,3,4,5,5,5,6,7}; //중복된 값을 다수 가지는 int 배열 선언 Set set = new HashSet(); // set의 자료 구조를 사..
2021.02.03 -
2021-02-01 문제 항승이는 품질이 심각하게 나쁜 수도 파이프 회사의 수리공이다. 항승이는 세준 지하철 공사에서 물이 샌다는 소식을 듣고 수리를 하러 갔다. 파이프에서 물이 새는 곳은 신기하게도 가장 왼쪽에서 정수만큼 떨어진 거리만 물이 샌다. 항승이는 길이가 L인 테이프를 무한개 가지고 있다. 항승이는 테이프를 이용해서 물을 막으려고 한다. 항승이는 항상 물을 막을 때, 적어도 그 위치의 좌우 0.5만큼 간격을 줘야 물이 다시는 안 샌다고 생각한다. 물이 새는 곳의 위치와, 항승이가 가지고 있는 테이프의 길이 L이 주어졌을 때, 항승이가 필요한 테이프의 최소 개수를 구하는 프로그램을 작성하시오. 테이프를 자를 수 없고, 테이프를 겹쳐서 붙이는 것도 가능하다. 입력 첫째 줄에 물이 새는 곳의 개수 ..
백준 BaekJoon 1449번: 수리공 항승 [Java]2021-02-01 문제 항승이는 품질이 심각하게 나쁜 수도 파이프 회사의 수리공이다. 항승이는 세준 지하철 공사에서 물이 샌다는 소식을 듣고 수리를 하러 갔다. 파이프에서 물이 새는 곳은 신기하게도 가장 왼쪽에서 정수만큼 떨어진 거리만 물이 샌다. 항승이는 길이가 L인 테이프를 무한개 가지고 있다. 항승이는 테이프를 이용해서 물을 막으려고 한다. 항승이는 항상 물을 막을 때, 적어도 그 위치의 좌우 0.5만큼 간격을 줘야 물이 다시는 안 샌다고 생각한다. 물이 새는 곳의 위치와, 항승이가 가지고 있는 테이프의 길이 L이 주어졌을 때, 항승이가 필요한 테이프의 최소 개수를 구하는 프로그램을 작성하시오. 테이프를 자를 수 없고, 테이프를 겹쳐서 붙이는 것도 가능하다. 입력 첫째 줄에 물이 새는 곳의 개수 ..
2021.02.01 -
2021-01-30 문자열 변수를 다루다 보면 간혹 불필요한 기호가 섞여 있거나 아니면 문자열을 분리해야 하는 경우가 있다. 이러한 경우에 사용할 수 있는 메서드로는 String에서 제공하는 split 이 있으며, 사용방법은 아래와 같다. package sString_Split; import java.util.ArrayList; import java.util.List; public class main { public static void main(String[] args) { // split 메서드를 이용하면 문자열의 특정 기호에 따른 // 문자열의 조합은 분리하여 정리할 수 있다.. String str = "hi-hi,hi%hi,hi-hi,hi%hi"; // 불필요한 특정 특수 기호가 들어가 있는 문자..
[Java] 자바 String split를 통한 문자열 쪼개기![분리]2021-01-30 문자열 변수를 다루다 보면 간혹 불필요한 기호가 섞여 있거나 아니면 문자열을 분리해야 하는 경우가 있다. 이러한 경우에 사용할 수 있는 메서드로는 String에서 제공하는 split 이 있으며, 사용방법은 아래와 같다. package sString_Split; import java.util.ArrayList; import java.util.List; public class main { public static void main(String[] args) { // split 메서드를 이용하면 문자열의 특정 기호에 따른 // 문자열의 조합은 분리하여 정리할 수 있다.. String str = "hi-hi,hi%hi,hi-hi,hi%hi"; // 불필요한 특정 특수 기호가 들어가 있는 문자..
2021.01.30