
알고리즘 문제를 풀 때, 대부분 Scanner와 BufferedReader를 이용한다.둘의 차이와 장단점을 알아보자.Scanner 클래스는 Java의 유틸리티 클래스 중 하나로, 다양한 데이터 타입의 입력을 쉽게 처리할 수 있게 해준다.Scanner는 공백을 기준으로
✅ 코틀린 기본 자료형 Numbers, Booleans, Characters, Strings에 대해 알아보자
Kotlin Collections - List, Set, Map, ArrayDeque
컬렉션 연산의 유형 멤버 함수 : 특정 컬렉션 타입에 필수적인 함수 확장 함수 : 여러 컬렉션 타입에 적용될 수 있는 함수 List 포함되는지 특정 인덱스의 첫 번째 요소 반환 특정 요소의 인덱스 반환 비었는지 특정 요소의 마지막 요소 반환
map(): 각 요소에 함수를 적용하여 변환된 리스트 반환mapIndexed(): 인덱스와 함께 요소를 사용해 변환mapNotNull(): null이 반환되면 해당 요소를 필터링mapIndexedNotNull(): 인덱스와 함께 null을 필터링하며 변환mapKeys(
필터링 필터링은 특정 조건을 만족하는 요소를 걸러내는 방식으로 이루어진다. 여기서 조건자는 람다 함수로, 컬렉션의 각 요소를 받아 불리언 값을 반환한다. true는 해당 요소가 만족함을, false는 그렇지 않음을 의미한다. 원본 컬렉션을 변경하지 않고, 새로운 컬렉
✅ 객체 기반 코드 블록 실행 ✅ Kotlin에는 let, run, with, apply, also 총 5개가 있다.
✏️ 코틀린의 주요 특성 ✅ 대상 플랫폼 코틀린의 주목적은 현재 자바가 사용되고 있는 모든 용도에 적합하면서도 더 간결하고 생산적이며 안전한 대체 언어를 제공하는 것이다. 코틀린을 활용할 수 있는 가장 일반적인 영역은 다음과 같다. 서버상의 코드 (특히 웹 애플리케이

위 코드에서 찾을 수 있는 코틀린 문법과 특성은 다음과 같다.함수를 선언할 때 fun 키워드를 사용한다.파라미터 이름 뒤에 파라미터의 타입을 쓴다.함수를 최상위 수준에 정의할 수 있다. 꼭 클래스 안에 함수를 넣어야 할 필요가 없다.System.out.println 대

kotlin에서 연산자 함수는 특정 연산자를 사용자 정의 타입에 대해 재정의 할 수 있게 하여 더 직관적이고 자연스러운 코드 작성을 가능하게 한다.이를 통해 +, -, \*, /, %, \[] 등과 같은 연산자를 오버로딩할 수 있다.연산자 함수를 정의하려면 operat
Kotlin 순열, 조합 템플릿
✅ ArrayDeque를 이용한 Stack과 Queue 구현
✅ Sequences는 lazy하여 필요한 시점에 연산을 수행하고, 중간 결과를 저장하지 않는다. 많은 데이터나 복잡한 연산을 처리할 때 더 효율적이다.
✅ Array: 구현체, 크기 고정 수정 가능 ✅ List: 인터페이스, 불변 또는 가변 선언 가능
✅ 제곱 구하기. import kotlin.math.pow. Double 클래스에 pow() 확장 함수가 제공된다.
✅ sorted(), sortedBy(), sortedWith()를 이용하여 정렬할 수 있다.
✅ maxOrNull() : 최댓값 반환 ✅ maxOfOrNull {} : 조건을 기준으로 최댓값 반환 ✅ maxByOrNull {} : 조건을 기준으로 최댓값을 가진 요소 반환 ✅ maxWithOrNull {} : Comparator를 기준으로 최댓값 반환
✅ sum() : 모든 요소를 합한다. ✅ sumOf {} : 조건에 맞는 요소를 합한다.
✅ 상속 가능한 자식 클래스를 제한하는데 사용한다. 모든 자식 클래스는 컴파일 타임에 미리 정의된다. ✅ 예측 가능한 계층 구조로 안정적인 코드를 작성할 수 있다.