신규 블로그를 만들었습니다!
문제 풀이에 대한 내용과 코드는 아래에 있습니다. 문제를 아시는 분은 아래로 내려가서 확인 할 수 있습니다.
문제 출처 - 백준
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다.
각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10)
출력
각 테스트 케이스마다 "Case #x: A + B = C" 형식으로 출력한다. x는 테스트 케이스 번호이고 1부터 시작하며, C는 A+B이다.
예제
예제입력
5
1 1
2 3
3 4
9 8
5 2
예제출력
Case #1: 1 + 1 = 2
Case #2: 2 + 3 = 5
Case #3: 3 + 4 = 7
Case #4: 9 + 8 = 17
Case #5: 5 + 2 = 7
코드풀이
이 문제를 풀때는 2가지 방법이 있습니다. 로직이 다른것은 아니고, BufferedReader를 사용하는 방법과 Scanner를 사용하는 방법입니다. BufferedReader로 푸는것이 속도는 더 빠르므로, 개인적으로 BufferedReader를 이용해서 푸는것을 추천합니다.
BufferedReader로 풀기
import java.io.BufferedReader
import java.io.InputStreamReader
import java.util.*
// BufferedReader 이용해서 풀기
fun main(args: Array<String>){
val br = BufferedReader(InputStreamReader(System.`in`))
for (i in 1..Integer.parseInt(br.readLine())) {
val input = br.readLine()
val st = StringTokenizer(input, " ")
val a = Integer.parseInt(st.nextToken())
val b = Integer.parseInt(st.nextToken())
println("Case #${i}: ${a} + ${b} = ${a + b}")
}
}
코드 길이는 Scanner보다는 조금 길지만, 속도는 빠릅니다.
참고로 System.in을 사용할때는 in에 ` 기호를 사용해줘야 합니다. 왜냐하면, 코틀린에서는 in이 키워드로 동작하기 때문입니다. 그래서 코드 7번째 줄을 보면 System.`in`이라고 사용한 것을 확인 할 수 있습니다. ( ` 는 싱글따옴표가 아닙니다. 키보드 1옆에 있는 기호 입니다.)
Scanner로 풀기
import java.util.*
// Scanner 이용해서 풀기
fun main(args: Array<String>) = with(Scanner(System.`in`)) {
for (i in 1..nextInt()) {
val a = nextInt()
val b = nextInt()
println("Case #${i}: ${a} + ${b} = ${a + b}")
}
}
확실히 코드는 첫번째(BufferedReader)로 푼것보다 짧습니다.
결과
첫번째 풀이가 Scanner를 이용한 풀이 결과입니다. 그리고, 두번째 풀이가 BufferedReader를 이용한 풀이 결과입니다.
해당 문제는 직접 풀어보고 작성한 글 입니다.
궁금한점이 있거나 더 효율적인 방법으로 푸는 방법이 있다면 댓글로 알려주세요~
다른 글
2019/02/05 - [Algorithm/백준 온라인 저지] - 백준 10172번 개, 코틀린으로 풀어보기
2019/01/28 - [Algorithm/백준 온라인 저지] - 백준 1000번 코틀린(Kotlin)으로 풀어보기
'Algorithm > 백준 온라인 저지' 카테고리의 다른 글
백준 15905번 UCPC는 무엇의 약자일까? 코틀린으로 풀기 (0) | 2019.02.09 |
---|---|
백준 2438번 별찍기, 코틀린으로 풀기 (0) | 2019.02.07 |
백준 10172번 개, 코틀린으로 풀어보기 (0) | 2019.02.05 |
백준 1000번 코틀린(Kotlin)으로 풀어보기 (0) | 2019.01.28 |
백준/2309번 :: 일곱 난쟁이 (Python, 파이썬, 알고리즘) (0) | 2018.08.29 |
최근댓글