본문 바로가기

전체 글669

왜 int, String 배열은 스트림(Stream)으로 쉽게 변환되는데 char 배열은 안 되는 것일까?! (자바 캐릭터 배열 스트림으로 변환하기) Java.util 패키지의 Arrays 클래스를 이용하면 간단히 Stream으로 변경할 수 있다. 위에서와 int 외에도 다양한 숫자형 strem 변환을 지원한다. public class Example { public static void main(String[] args) { toStream(new int[]{1, 2, 3, 4, 5}); } private static void toStream(int[] array) { IntStream stream = Arrays.stream(array); } } String의 경우 제네릭 T 타입 배열로 인자값이 들어가는 케이스로 변환된다. private static void toStream(String[] array){ Stream stream = Arrays.s.. 2023. 6. 24.
백준 알고리즘 풀때 input 설정 인텔리제이에서 쉽게 하기 백준 알고리즘은 다음과 같이 입력을 받아서 출력으로 정답을 내는 시스템으로 되어 있다. 표준 입력을 Scanner나 BufferedReader를 통해 받아서 사용할 때 매번 콘솔창에 테스트 데이터를 넣어주어야 하는 것이 생각보다 귀찮은 일이다. 그래서 다음과 같이 입력을 텍스트 파일에 붙여넣어 runtime시 입력되도록 자동화할 수 있다. 1) input.txt 생성 어느 위치든지 사용할 위치에 input.txt 파일을 생성한다. 2) run configuration 설정 다음과 같이 사용하는 클래스를 우클릭하여 들어갈 수도 있고 우측 상단의 edit을 통해 들어갈 수도 있다. 해당 버튼을 클릭하면 다음과 같은 창이 뜨는데 여기서 modify options를 눌러 Redirect input from 버튼.. 2023. 6. 24.
버블 정렬 (Bubble Sort) - 아이디어, 작동 원리, 성능 및 시간 복잡도, 특징, 자바 구현 코드 버블 정렬 비교 기반 알고리즘 중 가장 기초가 되는 버블 정렬에 대해 살펴본다. 아이디어 오름차순 정렬이라고 할 때, 모든 인접한 두 값을 비교하여 왼쪽의 값이 더 큰 경우 자리를 하나씩 바꾸는 과정을 반복해서 정렬한다. 버블 정렬은 왼쪽 -> 오른쪽, 오른쪽 -> 왼쪽 진행방향을 두 가지로 나눠서 생각해볼 수 있다. 하지만 결론은 동일하게 나타난다. 작동 원리 다음과 같은 데이터를 정렬하는 과정을 통해 실제 작동 원리를 살펴보자 . int[] arr = {50 20 30 10 40}; 50 20 30 10 40의 숫자 중에서 첫 번째부터 마지막까지 각각을 왼쪽에서부터 오른쪽으로 하나씩 옮겨가면서 비교를 한다. 예를 들어 다음과 같다. i=0) 1) 먼저 50과 20을 비교한다. 왼쪽의 값이 더 크므로 .. 2023. 6. 23.
If 분기문 문제를 객체지향, 함수형 프로그래밍을 이용해 해결하기(feat. 우아한테크코스, 스프링 시큐리티) If문은 실생활에서도 자주 사용되는 문법이다. 만약 네가 오후 4시에 온다면, 난 3시부터 행복해지기 시작할거야! 위와 같이 간단한 조건문도 있지만 현실에서는 좀 더 복잡한 경우가 많다. 하지만 네가 5시 이후에 온다면, 난 다른 일을 계획해야 할 것이고, 만약 네가 오지 않는다면, 난 혼자 영화를 보거나 책을 읽을 거야. 게다가, 만약 비가 온다면, 우리는 실내에서 만나야 할 것이고, 맑은 날씨라면 공원에서 만나 피크닉을 즐길 수 있을 거야. ... 이런 식으로 현실 세계에는 다양한 "if" 경우의 수가 있고, 이를 "~하면 ~하다"라는 문법으로 표현한다. 프로그래밍에서도 if문은 다양하고 그리고 유용하게 쓰인다. String beverage; if (season.equals("여름") && weath.. 2023. 6. 22.
금액 표기시 천 단위로 숫자에 컴마를 찍는 6가지 방식 (자바 구현 코드) 천 단위로 금액을 계수하기 쉽도록 컴마를 찍는 표기법을 자바 코드로 구현하는 방법을 알아본다. - 1000 -> 1,000 - 123456789 -> 123,456,789 아이디어의 몇 가지 포인트들은 다음과 같다. - 숫자형을 받아 문자형으로 리턴해야 한다. - 3자리 수에 착안한다. - 자릿수 정보를 이용하여 앞에서부터 붙이거나, 자릿수 정보 없이 뒤에서부터 붙이거나. - 나눗셈과 나머지 연산을 사용할 수 있다. - Regex를 이용할 수 있다. 크게 나머지 연산을 이용한 풀이법과 Regex를 이용한 풀이법으로 나뉜다. 1~5는 나머지 연산을 이용한 코드이고 마지막 코드는 Regex를 이용한다. 1. 반복문과 나눗셈을 이용한 방식 1 private static String convert(long mo.. 2023. 6. 21.