-
[백준 알고리즘/Kotlin] 10869번 사칙연산 (feat. 입출력, append 체이닝)IT Study/백준 알고리즘 2023. 12. 26. 15:32728x90
Kotlin 기초부터 탄탄히 가보죠.
1. 백준 알고리즘 풀이 시, 입출력의 기본 형태
1-1. 기본 형태 (simple)
import java.io.BufferedReader import java.io.InputStreamReader import java.io.IOException fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val result = StringBuilder() println(result) br.close() }
1-2. 예외 처리한 형태
안전한 코딩을 연습하기 위해서는 예외 처리를 습관화하는 것이 좋겠습니다.
(예외가 발생활 확률이 매우 낮을 때는 사용하지 않는 것도 좋을 것 같네요. 필요할 때를 잘 구분해서 사용해야겠습니다.)
import java.io.BufferedReader import java.io.InputStreamReader import java.io.IOException fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val result = StringBuilder() try { // br.readLine()을 사용하여 한 줄을 읽고 이를 StringBuilder에 추가 } catch (e: IOException) { e.printStackTrace() } finally { br.close() } println(result) }
try { // 예외가 발생할 수 있는 코드 작성 } catch (e: ExceptionType) { // 예외가 발생했을 때 수행할 코드 작성 } finally { // 항상 실행되어야 하는 코드 작성 (예외 발생 여부와 상관없이) }
1-3. use 함수 사용 (자동으로 BufferedReader 닫히도록 만들기)
fun main() = System.`in`.bufferedReader().use { br -> val result = StringBuilder() // br.readLine()을 사용하여 한 줄을 읽고 이를 StringBuilder에 추가 print(result) }
2. StringBuilder()의 append 체이닝
코드 스타일에 따라 2가지 방법을 사용할 수 있습니다.
2-1. apply 함수 활용
val result1 = StringBuilder() result1.apply { append("Hello, ") append("Kotlin!") } println(result1.toString())
위 코드에서 apply 함수는 StringBuilder의 인스턴스에 연이어 작업을 수행하도록 해줍니다
여러 줄에 걸쳐 코드를 작성할 수 있어 가독성이 좋습니다.
2-2. 직접 append 체이닝
val result2 = StringBuilder() result2.append("Hello, ").append("Kotlin!") println(result2.toString())
이 코드에서는 StringBuilder에 직접 append 메서드를 체이닝 하여 작업을 수행합니다.
코드가 간결하며 한 줄에 작성할 수 있습니다.
3. 최종 결과 코드
import java.io.BufferedReader import java.io.InputStreamReader import java.io.IOException fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val result = StringBuilder() try { val (a, b) = br.readLine().split(" ").map { it.toInt() } val sum = a + b val sub = a - b val mul = a * b val div = a / b val rem = a % b result.apply { append("$sum\n") append("$sub\n") append("$mul\n") append("$div\n") append("$rem") } } catch (e: IOException) { e.printStackTrace() } finally { br.close() } print(result) }
'IT Study > 백준 알고리즘' 카테고리의 다른 글
[백준 알고리즘/Kotlin] 1157번 단어 공부 (feat. maxOrNull, count, indexOf) (0) 2023.12.27 [백준 알고리즘/Kotlin] 2588번 곱셈 (feat. toString() 이후 toInt() 사용) (0) 2023.12.26 [백준 알고리즘/Kotlin] 4673번 셀프 넘버 (feat. Array의 fill과 초기화 람다 차이) (0) 2023.12.25 [백준 알고리즘/Kotlin] 1202번 보석 도둑 (feat. mutableListOf, PriorityQueue) (0) 2023.12.25 [백준 알고리즘/Kotlin] 1715번 카드 정렬하기 (feat. 우선순위 큐, PriorityQueue 클래스와 메서드) (0) 2023.12.22