지난 포스팅에서는 List, Set, Map에 대해서 알아봤다. 이번에는 컬렉션에서 사용되는 함수에 대해 알아보자! 굉장히 많은 함수들이 있는데 오늘은 filter와 map 함수만 살펴보려 한다. filter filter 함수는 주어진 람다의 조건을 만족하는 원소만 필터링하는 기능이다. List와 Set을 필터링하는 경우에는 List로, Map을 필터링 하는 경우에는 Map으로 반환한다. filter 함수는 요소의 값만 확인할 수 있다. filterIndexed() : 인덱스를 통해 처리하고 싶을 때 사용하면 인덱스와 값에 접근할 수 있다. filterNot() : 지정된 조건과 일치하는 항목만 포함하는 리스트 반환 filterIsInstance() : 주어진 타입을 만족하는 원소 필터링. T 타입과 관..
Collection이란? Collection(컬렉션)은 대부분의 프로그래밍 언어에 있는 자료구조로, 객체의 모음이라 할 수 있다. 컬렉션은 Generic으로 구현이 되어 다양한 타입과 함께 사용할 수 있다. 코틀린에는 List, Set, Map 3가지 컬렉션이 있다. List, Set, Map 모두 Mutable과 Immutable을 별개로 지원한다. Mutable vs Immutable Mutable은 가변. read&write로 생성된 이후 값을 변경할 수 있다. 반면 Immutable은 불변. read-only로 생성된 이후에 값을 수정할 수 없다. 코틀린의 컬렉션들은 아래와 같은 상속 구조를 가지고 있다. 간단하게 예제를 작성해보면서 컬렉션을 어떻게 사용하는지 알아보자! List 리스트는 데이터를..
단계별 문제풀이 11단계 브루트포스 7568번: 덩치 우리는 사람의 덩치를 키와 몸무게, 이 두 개의 값으로 표현하여 그 등수를 매겨보려고 한다. 어떤 사람의 몸무게가 x kg이고 키가 y cm라면 이 사람의 덩치는 (x, y)로 표시된다. 두 사람 A 와 B의 덩 www.acmicpc.net with() 함수는 어떤 객체의 이름을 반복하지 않고 객체에 대해 다양한 연산을 수행할 수 있게 해준다. BufferedReader(InputStreamReader(System.`in`) 대신 System.`in`.bufferedReader()를 사용하면 코드도 깔끔해지고 import를 줄일 수 있다. 각 사람의 몸무게와 키를 입력받아서 split(), map() 함수를 사용하여 정수로 바꿔주었다. 덩치가 더 큰 ..
단계별 문제풀이 8단계 2869번: 달팽이는 올라가고 싶다 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) www.acmicpc.net 단계별 문제풀이 9단계 9020번: 골드바흐의 추측 1보다 큰 자연수 중에서 1과 자기 자신을 제외한 약수가 없는 자연수를 소수라고 한다. 예를 들어, 5는 1과 5를 제외한 약수가 없기 때문에 소수이다. 하지만, 6은 6 = 2 × 3 이기 때문에 소수가 아 www.acmicpc.net 에라토스테네스의 체로 소수가 아닌 수들을 먼저 거르고 소수인 수들만 op에 저장 n / 2 이하의 소수들을 확인하면서 골드바흐 파티션을 찾는다 단계별 문제풀이 10단계 10872번: 팩토리얼 0보다 크거나 같은 ..
단계별 문제풀이 1단계 2557번: Hello World Hello World!를 출력하시오. www.acmicpc.net 10718번: We love kriii ACM-ICPC 인터넷 예선, Regional, 그리고 World Finals까지 이미 2회씩 진출해버린 kriii는 미련을 버리지 못하고 왠지 모르게 올해에도 파주 World Finals 준비 캠프에 참여했다. 대회를 뜰 줄 모르는 지박 www.acmicpc.net 코틀린에서는 for문에 in 키워드를 사용한다. ..으로 범위를 지정할 수 있는데 첫 번째 값과 마지막 값이 모두 범위에 포함된다. 마지막 값을 포함하고 싶지 않다면 until을 쓰면 된다 역순으로 진행하고 싶다면 downTo를 사용하면 되고 step 2를 설정해주면 -2씩 감소한..
단계별 문제풀이 3단계 2739번: 구구단 N을 입력받은 뒤, 구구단 N단을 출력하는 프로그램을 작성하시오. 출력 형식에 맞춰서 출력하면 된다. www.acmicpc.net 단계별 문제풀이 6단계 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net selfNumber가 true이면 d(n)이 10000 이하일 때까지 반복해서 selfNumber가 아닌 수들을 걸러주었다. d(n) 함수는 n과 n의 각 자리수를 더하는 함수이다. 단계별 문제풀이 7단계 2908번: ..
입력 1. readLine() 함수 한 줄의 텍스트를 입력받는 함수. readLine()은 String? 타입으로 입력을 받는다. String?은 String이지만 null 타입을 허용한다는 의미이다. 예제를 통해 살펴보자. fun main() { val size : Int = readLine()!!.toInt() val arr = Array(size) { readLine()!!.toInt() } var sum = 0 for (i in arr) { sum += i } println("총합 : $sum") } readLine()!!는 readLine()이 null을 허용하는 타입이지만, 강제적으로 null이 아니라고 알려주고 type을 변환하는 것이다. 데이터가 무조건 문자열 형식으로 저장되기 때문에 숫자..
Hello World fun main() = println("Hello World") Variables 데이터 타입을 지정하지 않아도 변수값에 따라 자동으로 데이터 타입이 지정된다. 데이터 타입을 직접 지정하고 싶을 때는 :를 쓰면 된다. var name : String = "John" // String var birthyear = 1998 // Int (number) 변수를 초기화하지 않고 선언만 할 때는 데이터 타입을 명시해주어야 한다. var name : String name = "Jennie" println(name) 코틀린에서는 2가지 변수 선언 방식이 있다. var : 일반적인 변수. 값 변경 가능 val : 상수. 값 변경 불가능 var name = "John" name = "Stephen"..
- Total
- Today
- Yesterday
- 구현
- 브루트포스
- SW Expert Academy
- 배열
- algorithm
- C++
- 분할 정복
- dfs
- 백준
- Two Pointer
- 문자열
- 이분 탐색
- Kotlin
- programmers
- 두 포인터
- 그래프
- 자바
- Java
- SWEA
- 트리
- 정렬
- 위상 정렬
- 알고리즘
- 투 포인터
- BOJ
- 큐
- 프로그래머스
- 재귀
- 스택
- BFS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |