Programing/Java 4

JAVA 순열(permutations) 알고리즘

배열의 모든 순열을 재귀적으로 호출하고 출력하는 코드입니다. 여기서 사용되는 개념은 백트래킹과 교환(swap)입니다. 이 알고리즘은 재귀적으로 순열을 생성하며, 각 단계에서 현재 위치(i)를 기준으로 나머지 위치(j)를 교환하여 순열을 생성합니다. 이때 백트래킹을 통해 이전 상태로 돌아갈 수 있도록 배열을 다시 원래대로 되돌립니다. /** 알고리즘 1,2,3 / | \ 123 213 321 i=0, j=0~2 / | \ 123,132 213,231 321,312 i=1, j=1~2 (j가 증가하면서 swap을 한다.) */ public class Permutations { /** * 1,2,3으로 만들 수 있는 모든 경우의 수를 출력한다. */ @Test public void 순열(){ int[] arr..

Programing/Java 2023.08.25

인텔리제이 한글 깨짐 오류 unmappable character (0xEC) for encoding x-windows-94

방금 만든 프로젝트에서 다음과 같이 에러가 나타났다. 해당 오류는 주로 인코딩(encoding) 문제로 인해 발생하는 것으로 보입니다. 주어진 코드 파일 내에 한글 문자 또는 특수 문자 등이 제대로 처리되지 않아서 발생하는 문제입니다. 오류 메시지에 "unmappable character for encoding x-windows-949"라고 나와있는데, 이는 특정 문자가 해당 인코딩 방식(x-windows-949)으로 표현할 수 없다는 의미입니다. 해결방법 File - Settings 창을 띄운 후 File Encodings 검색 오른쪽 사진과 같이 동그라미 친 부분들을 UTF-8로 설정하고 적용. File - Settings 창을 띄운 후 Gradle 검색 오른쪽 사진과 같이 Build and Run ..

Programing/Java 2023.08.25

자바 Stream을 이용한 타입별 형 변환

Stream이란? 자바8부터 지원하는 Stream은 컬렉션, 배열등에 저장되어있는 요소들을 하나씩 참조하여 반복적인 처리를 가능케 하는 기능이다. 아래 코드를 통하여 간단하게 Stream을 이용한 타입별 형 변환을 알아보자. public class 형변환 { @Test public void main(){ List list = new ArrayList(); list.add(1); list.add(2); list.add(3); //list To int[] int[] ints = list.stream().mapToInt(m -> m).toArray(); //list To String[] String[] strings = list.stream().map(String::valueOf).toArray(String[..

Programing/Java 2023.01.20