클래스 이름
: 클래스 이름은 주로 파스칼 표기법을 사용한다.
파스칼 표기법은 모든 단어를 대문자로 시작하는 표기법이다.
함수나 변수 이름
함수나 변수 이름은 주로 카멜 표기법을 사용한다.
카멜 표기법은 첫 단어만 소문자로 시작한다.
변수의 선언
kotlin에서 변수의 선언은 var, val 두 종류가 있다.
var : 일반적으로 통용되는 변수, 언제든 읽기, 쓰기가 가능함
val : 선언 시에만 초기화 가능, 중간에 값 변경 불가능
클래스에 선언된 변수 : Property 속성
이 외의 Scope 내에 선언된 변수 : Local Variable 로컬 변수
자료형 뒤 ? -> nullable 변수로 선언 가능
형 변환
: 하나의 변수에 지정된 자료형을 호환되는 다른 자료형으로 변경하는 기능
명시적 형 변환
: 변환될 자료형을 개발자가 직접 지정 / 코틀린은 암시적 형 변환은 지원하지 않음
ex. toByte(), toShort(), toInt(), toLong(), toFloat(), toDouble(), toChar()
배열의 예제
fun main() {
var intArr = arrayOf(1,2,3,4,5)
var nullArr = kotlin.arrayOf<Int>(5) //특정 크기의 공간을 가지는 비어있는 배열, null로 채워진 배열
//<Int> -> Generic 배열에 할당할 자료형 지정
intArr[2] = 8
println(intArr[2])
}
https://www.acmicpc.net/problem/10869
백준 kotlin 10869 사칙연산
//10869. 사칙연산
import java.util.Scanner
fun main(args:Array<String>) = with(Scanner(System.`in`)){
val a: Int = nextInt()
val b: Int = nextInt()
if( 1 <= a && b <= 10000){
println(a+b)
println(a-b)
println(a*b)
println(a/b)
println(a%b)
}
}
백준 kotlin 10926. ??!
import java.util.Scanner
fun main(args: Array<String>) = with(Scanner(System.`in`)){
val a: String = next()
println(a + "??!")
}
백준 kotlin 5597. 과제 안 내신 분..?
import java.util.Scanner
fun main(args: Array<String>) = with(Scanner(System.`in`)){
val student = arrayListOf<Int>()
for(index in 1..28)
student.add(nextInt())
val result = arrayListOf<Int>()
for(index in 1..30){
if(index !in student)
result.add(index)
}
println(result[0])
println(result[1])
}
백준 kotlin 10818 최소, 최대
import java.util.Scanner
fun main(args: Array<String>) = with(Scanner(System.`in`)) {
val size: Int = nextInt()
val List = IntArray(size)
if(size in 1..1000000){
for(i in 0 until size){
List[i] = nextInt()
}
}
println("${min(List)} ${max(List)}")
}
fun max(array: IntArray): Int{
var max: Int = array[0]
for(i in array.indices){
if(max < array[i])
max = array[i]
}
return max
}
fun min(array: IntArray): Int{
var min: Int = array[0]
for(i in array.indices){
if(min > array[i])
min = array[i]
}
return min
}
참고 : indices는 Collection, Array 클래스에 선언되어 있는 프로퍼티로 컬렉션 타입의 인덱스 범위를 반환합니다. 예를 들어 list 객체에 데이터가 3개 들어있다면, list.indices는 0..2를 반환합니다 결국 for (i in list.indices)는 for (i in 0..2)로 선언한 것과 같습니다.
참고자료
디모의 코틀린 강좌