'Kotlin' 카테고리의 다른 글
[Kotlin] Any 클래스, 타입 체크 (3) | 2018.07.18 |
---|---|
[Kotlin] 기본 자료형, 변수와 상수 (0) | 2018.07.18 |
[Kotlin] Any 클래스, 타입 체크 (3) | 2018.07.18 |
---|---|
[Kotlin] 기본 자료형, 변수와 상수 (0) | 2018.07.18 |
쉬운 문제지만 코틀린을 배우는 초기단계라 review 하겠습니다
해결방법 : "CAMBRIDGE" 에 들어간 알파벳을 input에서 빼고 출력하는 문제입니다.
대문자만 필요하므로 크기 26짜리 배열 alpha를 Boolean 배열로 선언하고,
"CAMBRIDGE"의 알파벳 하나하나의 자리에 true로 하였습니다.
그리고 입력받은 input에 filter을 통해 true가 아닌것 (즉, false 인 것)만 출력하도록 하였습니다.
▼ 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 | import java.io.BufferedReader import java.io.InputStreamReader fun main(args: Array<String>) { val br = BufferedReader(InputStreamReader(System.`in`)) val chk = "CAMBRIDGE" val alpha = BooleanArray(26) chk.forEach { alpha[it.toInt() - 65] = true } val input = br.readLine() input.filter { !alpha[it.toInt() - 65] }.forEach { print(it) } println() } | cs |
[BOJ] 2170번 선 긋기 by Kotlin (0) | 2018.11.13 |
---|---|
[BOJ] 1017번 소수 쌍 by Kotlin (0) | 2018.10.07 |
[BOJ] 1671번 상어의 저녁식사 by Kotlin (0) | 2018.10.06 |
[BOJ] 1021번 회전하는 큐 - by Kotlin (0) | 2018.10.02 |
[BOJ] 1068번 트리 byKotlin (0) | 2018.10.02 |
Kotlin의 Any Class와 타입 체크
※ 정리
☞ Any : kotlin.Any 모든 코틀린 클래스의 최상위 (java.lang.Object)
☞ type check : 런타임에서 type을 검사, 'is' , '!is' 연산자 (java의 instanceOf와 같음)
▶ Any type은 어떠한 자료형으로도 바뀔 수 있습니다.
▶ a3의 type이 처음에는 String -> Double형 -> Boolean 형으로 바뀐다.
1 2 3 4 5 | val a: Any = 1234 // kotlin.Any, 코틀린의 최상위 타입 클래스=? java Object와 비슷하지만 똑같지는 않다 val a2: Any = 'A' var a3: Any = "xyz" a3 = 3.141592 // double a3 = true // boolean | cs |
▶ Type check는 is로 한다.
▶ 만약, 아닌 것을 판달할 때에는 is 앞에 !을 붙인다. ex) 7번째줄에서... val b2 = b1 !is Int
▶ 7번째 줄에서, b1이 Int형이면 b2는 true, Int형이 아니면 false가 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 | val a: Any = 1234 // kotlin.Any, 코틀린의 최상위 타입 클래스=? java Object와 비슷하지만 똑같지는 않다 val a2: Any = 'A' var a3: Any = "xyz" a3 = 3.141592 // double a3 = true // boolean val b1 = 365 val b2 = b1 is Int // 'is' type check => java의 instanceOf println("b1 is Int = ${b1 is Int}, b2 = ${b2}") println("a is Int = ${a is Int}") println("a2 is Char = ${a2 is Char}") println("a3 is Boolean = ${a3 is Boolean}") println("a3 is String = ${a3 is String}") | cs |
▼ 위 코드의 결과 화면
[Kotlin] null가능형, 예외 및 null 안전성 (0) | 2018.09.20 |
---|---|
[Kotlin] 기본 자료형, 변수와 상수 (0) | 2018.07.18 |
BASIC TYPES
▶ Types : 자료형, 타입 (Java와의 호환성)
▶ Basic Types : 기본형에 해당하는 타입들, 클래스들 (Primitives)
▶ Value : 값 (수량, 코드값, 부호, 상태, 참거짓 등과 같은 데이터의 표현)
▶ Literal : 리터럴, 기호화된 간략식 관용 표현, L, f, F, ., 0x, ob
▶ Variable / Constant : 기본형 변수/상수
▶ Type Inference : 값에 의한 타입 추론, 명시적 타입 선언
▶ Numeric ( Integer / Real number ) : 수치계열(정수,실수)
▶ Boolean : 논리계열, true, false
▶ Char, String : 문자계열 (Unicode)
기본 자료형
1 2 3 4 5 6 7 8 9 10 11 12 | val a: Byte = 127 val b: Short = 30000 val c: Int = 2000 val d: Long = 230300000L // L을 생략할 수도 있지만 명시하는게 좋음 val f1: Float = 3.14f val f2: Float = 3.14F // 대문자 F도 가능 val g: Double = 32.3242332323 val h: Boolean = true // 논리형 val h2 = false val a2 = 1234 val i = 'A' // Char Type Inference val i2: Char = 'B' | cs |
※ 변수와 상수의 선언은
val 상수명: Type = Value , var 변수명: Type = Value 꼴이며,
※val c: Int = 2000 과 같이 명시적으로 타입을 선언 할 수 있고, val c=2000과 같이 Type을 생략하고 선언 할 수 있다.
( 값에 따라 type을 결정해준다)
VARIABLE(변수) VS. CONSTANT(상수)
▶ variable: 변수 (저장하는 데이터가 언제든 변할 수 있는, 메모리 공간에 붙인 이름)
▶ constant : 상수 (단 한번 초기화되는 value 값을 갖는, 일종의 네임드 상수); java의 final
1 2 3 4 | val a=7 // a++ <- a가 상수라서 불가능. var b=5 b++ // <- b가 변수라서 가능. | cs |
※위와 같이 상수(val 타입)는 읽기 전용 변수로써 수정 불가능
[Kotlin] null가능형, 예외 및 null 안전성 (0) | 2018.09.20 |
---|---|
[Kotlin] Any 클래스, 타입 체크 (3) | 2018.07.18 |