어떤 문자열을 반복해서 출력하고자 할 때, 기본적으로 for문을 사용해 변수에 더해주는 방법 외에 repeat 메서드와 StringBuilder의 append 메서드를 활용할 수 있다. repeat()repeat()은 java 11부터 사용할 수 있는 String의 문자열 반복 메서드로, 파라미터로 주어진 수만큼 문자열을 반복하여 반환한다. 매개변수가 없을 시 빈 문자열이 반환된다.public static void main(String args[]) { System.out.println("String".repeat(3));}결과StringStringStringfor문을 사용할 때보다 훨씬 코드 길이가 줄어 간편하고 가독성을 높일 수 있다. append()String은 변하지 않는 클래스로, 기존의..
java.lang.Math 클래스의 pow() 메소드로 제곱을, sqrt() 메소드로 루트(제곱근)를 구할 수 있다. 제곱 연산: Math.pow() pow()는 두 개의 double형 값을 가지고 제곱 연산을 수행하는 메소드이다. pow(a, b) 일 때 a^b를 반환한다. System.out.println((int) Math.pow(3, 2)); // 결과: 9 제곱근 연산: Math.sqrt() sqrt()는 double형 값의 제곱근을 수행하는 메소드이다. sqrt(n) 일 때 √n를 반환한다. System.out.println((int) Math.sqrt(9)); // 결과: 3
※ 다음은 공식문서, 남궁성 님의 자바의 정석 등 다양한 자료를 참고해 기초적인 개인 공부를 위해 작성한 글로, 비판적 읽기를 권장합니다. 람다식 (Lambda Expression) 이란 람다식은 메서드를 하나의 식(Expression)으로 표현한 것으로, 람다식을 사용하면 익명함수(Anonymous function) 객체를 보다 간결하게 표현할 수 있다. 코딩테스트 문제를 제공하는 사이트에서 한 두줄로 간결하게 작성하기 위해 람다식으로 쓰인 풀이들을 꽤 확인할 수 있다. 자바 튜토리얼 문서에서는 람다식은 메서드 선언과 비슷하여 이름이 없는 익명 메서드로 간주하며 사용할 수 있다고 말한다. 그러나 남궁성 님의 자바의 정석에서는 람다식은 엄밀히 말하면 클래스 내에 포함되어야 하는 method가 아니라 익명..
토이프로젝트 필요성 팀프로젝트에서 아쉬운 점을 돌이켜본 후, 아무래도 팀플젝은 내가 맡은 부분이 한정되어 있기에 해보고 싶었던 것을 하고 실력을 향상시키기 위해서는 기존 프로젝트 개선과는 별도로 간단한 프로젝트나마 혼자서 해보는 것이 낫겠다고 판단했다. 그러나 sqld 준비, 레주메 만들기, 면접 준비 등 취업 준비를 병행해야 하기 때문에 너무 많은 시간을 뺏겨서는 안된다. 따라서 간단한 to do list에 기능을 추가하는 토이프로젝트로 진행할 예정이다. 프로젝트 목표 - 실생활에서 사용할 수 있는 todo 웹 어플리케이션을 만든다. - Javascript를 공부하고 활용해본다. - 최대한 지난 팀프로젝트에서 사용해보지 못했거나 서툴렀던 기술을 활용하여 실력을 키운다. - 테스트 코드를 작성해본다. -..
선택 정렬: 인덱스 0부터 시작하여 차례대로 뒤의 숫자들과 하나하나 비교해 가장 작은 수가 나오면 교체하여 앞으로 오도록 하는 방법 (추가적인 코딩으로 안정 정렬 가능) 삽입 정렬: 요소를 하나씩 꺼내서 요소 앞에 있는 것들과 비교하며 알맞은 위치에 삽입하는 방법 (이미 정렬된 경우에 유용, O(n)) 셀 정렬: 삽입 정렬을 약간 변형한 정렬. 일정한 너비만큼 떨어진 요소를 가져와서 그 둘을 대소비교한 후 바꾸는 방법 (일정 너비만큼 모두 바꾸면 1round) 간격의 크기를 점점 줄이며 정렬하다 간격 크기가 1이 되면 삽입 정렬. 간격의 크기가 셸 정렬의 평균 시간 복잡도에 영향을 줌 합병 정렬: 요소가 하나만 남을 때가지 리스트를 쪼개고, 다시 합치는 과정에서 대소를 비교하여 정렬하는 방법 퀵 정렬: ..
아래 내용은 부스트코스 강의를 들으며 정리한 것입니다. 기수 정렬(radix sort) 기수 정렬(Radix)은 자릿수 등 기준에 따라 숫자를 분류하여 정렬하는 방법이다. 데이터의 각 자릿수를 낮은 자리수에서부터 자리수를 올려 점점 올라가면서 정렬을 수행한다. 예를 들어 아래의 숫자를 기수 정렬 하면 다음과 같은 과정을 거친다. 위의 과정을 십의자리, 백의자리, 천의자리까지 모두 마치면 다음과 같이 기수 정렬이 완료된다. 중복 숫자의 순서를 보장하는 안정 정렬이고, out-of-place 정렬이다. 기수 정렬은 이론적으로는 O(dn)의 시간 복잡도를 갖는 빠른 방법이라고 생각할 수 있다. 위와 같이 4자리 숫자를 일의 자리의 숫자, 십의 자리의 숫자, 백의 자리의 숫자, 천의 자리의 숫자에 따라 분류하여..
아래 내용은 부스트코스 강의를 들으며 정리한 것입니다. 퀵 정렬 (quick sort) 정렬 알고리즘 중 하나인 퀵 정렬은 중심점 - 피벗(Pivot Point)을 임의로 고른 후 이 중심점보다 작은 수를 한 쪽으로 분류하고 큰 수들은 다른 쪽으로 분류하여 정렬하는 방법이다. 매우 빠른 수행 속도를 가지는 정렬 방식이다. 퀵 정렬은 in-place 정렬로 추가로 메모리 공간을 필요로하지 않으며 중복 숫자의 순서를 보장할 수 없는 불안정 정렬이다. 퀵 정렬 과정(순서) 1) 피벗(pivot)을 선택한다. (주로 리스트의 중간에 있는 숫자 혹은 마지막에 있는 숫자 - 중간 값일 확률이 높음) 2) 마지막 요소와 피벗의 위치를 바꿔 피벗을 리스트의 가장 끝으로 보낸다. 3) 2개의 카운터를 사용하여 리스트의 ..