2021-07-29 입출력 스트림 및 다양한 경우에 바이트 배열을 String으로 String을 바이트 배열로 변경해야 하는 경우가 종종 발생하게 된다. 오늘은 이와 같은 경우에 어떻게 처리하는 지를 알아보도록 하자. - 예제 예제의 순서는 이러하다 우선적으로 하나의 String 객체를 선언해주고 이를 byte 배열로 변경한 후 다시 String으로 변경하는 과정을 살펴보도록 하자. //문자열 객체 String str = "Hello World"; //문자열 객체를 바이트 배열로 변환 byte [] arrByte = a.getBytes(); // 변환된 객체를 다시 문자열로 변환 String result = new String(arrByte); System.out.println(result); // He..
2021-03-29 문제 상근이는 보통 사람들이 사는 것과는 조금 다른 삶을 사는 사람이다. 상근이는 이런 사람들의 시선이 부담스럽기 때문에, 자신만의 숫자를 개발하기로 했다. 바로 그 이름은 팩토리얼 진법이다. 팩토리얼 진법은 각 자리에 올 수 있는 숫자는 0부터 9까지로 10진법과 거의 비슷하다. 하지만, 읽는 법은 조금 다르다. 팩토리얼 진법에서는 i번 자리의 값을 ai×i!로 계산한다. 즉, 팩토리얼 진법에서 719는 10진법에서 53과 같다. 그 이유는 7×3! + 1×2! + 9×1! = 53이기 때문이다. 팩토리얼 진법으로 작성한 숫자가 주어졌을 때, 10진법으로 읽은 값을 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루..
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 < ..
2020-12-28 Function 인터페이스는 apply 메서드를 가지고 있으면 매개 값과 리턴 값 모두를 가지고 있다. apply 메서드는 매개 값을 리턴 값으로 맵핑하는 역할을 하게 된다. 그러면 구체적인 사용법을 알아보도록 하자. 아래는 매개값으로 사용할 human 클래스이다. package LambdaFunction; public class human { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int ..
2020-12-24 문제 0과 1로만 이루어진 행렬 A와 행렬 B가 있다. 이때, 행렬 A를 행렬 B로 바꾸는데 필요한 연산의 횟수의 최솟값을 구하는 프로그램을 작성하시오. 행렬을 변환하는 연산은 어떤 3*3크기의 부분 행렬에 있는 모든 원소를 뒤집는 것이다. (0 -> 1, 1 -> 0) 입력 첫째 줄에 행렬의 크기 N M이 주어진다. N과 M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 행렬 A가 주어지고, 그 다음줄부터 N개의 줄에는 행렬 B가 주어진다. 출력 첫째 줄에 문제의 정답을 출력한다. 만약 A를 B로 바꿀 수 없다면 -1을 출력한다. import java.io.BufferedReader; import java.io.IOException; import java.io.Inp..
2020-12-22 기존에 Consumer와 Supplier 인터페이스는 매개 값만 있고 리턴 값은 없거나 매개 값은 없고 리턴 값만 있는 경우였다. 하지만 Operator의 경우 매개변수를 받으면서 동시에 리턴값도 가지고 있는 인터페이스다. 구체적인 사용법을 알아보자. 가장 기초적인 int형 Operator인 inIntBinaryOperator를 활용해 구체적인 예를 작성하였다. 코드는 아래와 같다. package LambdaOperator; import java.util.function.IntBinaryOperator; public class main { private static int[] scores = {60, 70, 80}; public static int check (IntBinaryOper..