14:17 Kotlin 깃북 마저 읽기 시작!
14:25 스트레칭, 마실 것을 좀 갖고 옴
14:52 오늘의 알고리즘 문제: 몫 구하기.
Kotlin에서 주의할 점은 Phyton과는 달리, 이미 설정된 변수의 타입에 따라 결과값이 결정된다는 것이다.
Phyton에서
num1 = 7
num2 = 3
print(num1/num2)
의 출력값은 2.3333333333333335가 된다. 하지만 Kotlin에선,
fun main() {
var num1:Int = 7 //타입을 꼭 먼저 선언해 주어야 한다!
var num2:Int = 3
println(num1/num2)
}
//Kotlin Playground에서 테스트해 볼 수 있다.
와 같은 식으로 항상 변수의 타입을 설정해야 한다.
15:05 다른 사람들의 코드카타 풀이 읽기. "num1 이 0 이상 100 이하의 범위를 가짐"을 표현할 수 있는 방식이 다양했다.
예시 1) &&를 쓰는 대신, ;로 문장을 끊고 한 줄에 '두 줄'의 코드를 쓸 수도 있나 보다.
0 <= num1 ; num1 <= 100
예시 2) 이거 참 마음에 든다! 직관적이고 보기 좋다. 다만, 코드를 쓰다가 왠지 점 갯수를 틀릴 것만 같다. 이름이 double dot 연산자란다. 정말 '점 두 개'! 미만이나 초과와 같은 조건을 포함시킬 때에는 쓰기 어렵겠군.
num1 in 0..100
15:10 범위를 판정하는 함수를 따로 정의하는 풀이도 있었다. SangHyun Moon님의 풀이를 복붙했다. 되게 안전하고 확실해 보인다! 처음 코드를 읽는 입장에선 좀 헷갈리지만 배울 점이 많아 보여 가지고 왔다.
class Solution {
fun solution(num1: Int, num2: Int): Int {
var answer: Int = 0
Validator.validateInputRange(num1)
Validator.validateInputRange(num2)
answer = num1 / num2
return answer
}
}
object Validator {
private const val PREFIX = "[ERROR] "
fun validateInputRange(input : Int){
require(input in 1 .. 100) {PREFIX + "1 부터 100 까지의 값을 입력해주세요."}
}
}
에러 메시지는 아예 private constant 로 선언한 것을 확인할 수 있다.
어려운 점:
15:38 아직 HRD-net 수강신청에 오류가 뜨는 관계로 유튜브에서 아무 프로그래밍 강의 영상이나 보기로 했다. 휴, 내일은 되었으면 좋겠다.
Data Structures and Algorithms in 15 Minutes https://www.youtube.com/watch?v=oz9cEqFynHU
16:04 배가 고파짐, 데이터 구조를 만들어낸 사람들은 방청소 개 빨리 할 것 같음.
수영님 안녕하세요! 이충환 매니저입니다. Kotlin에서 변수 선언 시 초기화를 해준다면 꼭 변수 타입을 지정해 주지 않아도 괜찮습니다!
var i = 3
var i : Int = 3
두 가지 방법 다 사용할 수 있습니다.
하지만 파이썬과는 방식이 다르니 '정적 타입 언어' 와 '동적 타입 언어' 를 찾아보시고 비교해보시는 것도 좋을 것 같습니다!