본문 바로가기

학습 노트

(196)
005. nullSafety val data: String? = "call me maybe."kotlin의 변수들은 기본적으로 null을 허용하지 않는데, 이를 가능하게 하는 것이 존재한다.swift의 optional과 거의 동일한 기능의 nullable인데 형태도, 사용법도, 기능도 굉장히 비슷하다.if (data != null) { println(data.uppercase())}println(data?.uppercase())null을 포함할 수 있기 때문에 두 번째 줄과 같이 간편하게 데이터의 유효성을 체크할 수 있고val num1: Int = 3val num2: Int? = 10val num3 = num1 + num2 //(X)null을 포함할 수 있기 때문에 기본 변수와는 다른 타입으로 간주하고, 바로 연산을 진행할 수..
004. loop와 function Loop// forfor (city in cities) { println(city)}// whilevar index = 0while (index for문과 while문을 사용한 반복문도 동일하게 존재하며, value binding도 당연히 사용할 수 있다.//close ended range0..10//open ended range0..012345678910for문에 자주 사용하는 범위 연산자는 swift의 것과 많이 닮아있는데, 기본적으로 전위를 포함하고, 후위를 닫아주는 형태이다.open ended range는 최근 추가된 연산자로, 기존의 rangeUntil을 대체한다.Functionfun main() {}지금까지 줄곧 사용하고 있었지만 위 표현식이 kotlin의 함수 표현식이다.fun sayH..
003. 조건문과 array 그리고 list 조건문val myAge = 15if (myAge >= 18) { println("can drunk")} else { println("reject")}if문은 if와 '()'를 사용한다.# Pythonif True: print("True")// Swiftif true { print("True")}python과 swift와는 조금씩 다른데, '()'의 유무만 제외하면 swift와 굉장히 흡사하다. Arrayval temparr = arrayOf("Seoul", "Busan", "London", "NewYork")println(temparr)[Ljava.lang.String;@6d03e736array의 선언은 arrayOf를 사용한다.선언 시점에서 메모리의 값이 정해지며, 요소를 추가하거..
002. 기본 연산자들 논리 연산자를 제외한 기본 연산자들을 좀 알아보자val name: String = "Martin"val surname: String = "Q"val fullName = name + " " + surname합 연산자는 역시나 문자열에도 사용할 수 있다.kotlin도 여백은 따로 추가해 줘야 하기 때문에 필요하다면 위와 같이 공백에 해당하는 문자열을 끼워 줘야 한다.val num1: Int = 10val num2: Int = 5val num3: Float = 3.0fval addition = num1 + num2val subtraction = num1 - num2val multiplication = num1 * num2val division = num1 / num2val modulo = num1 % num2..
001. 출력과 기본 자료형 빠르게 kotlin의 출력과 기본 자료형에 대해 알아보자fun main() { println("Hello world") print("line 2") print("line 3") print("line 4\n") print("line 5") println("Martin")}kotlin의 출력에는 print와 println 두 가지가 존재한다.println은 print line next의 약자로 다음 출력이 새로운 라인을 할당할 수 있도록 한다.Hello worldline 2line 3line 4line 5Martin출력은 위와 같은데 println이 실제로는 자동으로 '\n'을 끝에 추가해 주는 역할을 하기 때문으로,이전 출력 내용인 print("line 5")가 linebr..
99클럽 - n^2 배열 자르기, k진수에서 소수 개수 구하기 n^2 배열 자르기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr아이디어(작성중)풀이def solution(n, left, right): result = [] for idx in range(left, right + 1): row = idx // n col = idx % n if col  k진수에서 소수 개수 구하기 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr아이디..
99클럽 - 나이 계산하기 https://www.acmicpc.net/problem/16199아이디어(작성중)풀이birth_year, birth_month, birth_day = map(int, input().split())ref_year, ref_month, ref_day = map(int, input().split())international_age = ref_year - birth_yearif ref_month
99클럽 - 방학 숙제 https://www.acmicpc.net/problem/5532아이디어풀이L = int(input())A = int(input())B = int(input())C = int(input())D = int(input())days_for_korean = (A + C - 1) // Cdays_for_math = (B + D - 1) // Dtotal_homework_days = max(days_for_korean, days_for_math)play_days = L - total_homework_daysprint(play_days)
99클럽 - N개의 최소공배수, 연속 부분 수열 합의 개수 N개의 최소공배수 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr아이디어(작성중)풀이def gcd(x, y): while y: x, y = y, x % y return xdef lcm(x, y): return x * y // gcd(x, y)def solution(arr): answer = arr[0] for num in arr[1:]: answer = lcm(answer, num) return answer 연속 부분 수열 합의 개수 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭...
99클럽 - RGB거리 https://www.acmicpc.net/problem/1149아이디어(작성중)풀이N = int(input())costs = [list(map(int, input().split())) for _ in range(N)]dp = [[0] * 3 for _ in range(N)]dp[0][0] = costs[0][0]dp[0][1] = costs[0][1]dp[0][2] = costs[0][2]for i in range(1, N): dp[i][0] = min(dp[i-1][1], dp[i-1][2]) + costs[i][0] dp[i][1] = min(dp[i-1][0], dp[i-1][2]) + costs[i][1] dp[i][2] = min(dp[i-1][0], dp[i-1][1]) + ..