300x250
반응형
- 문제 (2741번 : N 찍기 - Kotlin[코틀린])
- 알고리즘
자연수 N을 입력받고, for 반복문을 이용하여 1부터 N까지 반복 출력한다. 단, 출력 한번당 한번의 개행이 있어야한다.
- 풀이
- 1번 풀이 (java.util.Scanner를 이용한 풀이)
import java.util.*
fun main() : Unit = with(Scanner(System.`in`)) {
val N = nextInt()
for(i in 1..N) println("${i}")
}
대부분 단순히 위와 같은 풀이로 접근했을 것 같다.
Scanner를 import 해준 뒤, N을 nextInt()로 입력받고,
for 문을 이용하여 1부터 N까지 단순히 출력해 준 코드이다.
코드는 간단하고 접근도 편리하지만, 백준에서의 의도한건지 N의 크기가 0 < N < 100,000 이다 보니 크기가 커질수록 메모리의 부담이 커질 것 같다.
- 2번 풀이 (BufferedReader를 이용한 풀이)
import java.util.StringTokenizer
import java.io.InputStreamReader
import java.io.OutputStreamWriter
import java.io.BufferedReader
import java.io.BufferedWriter
fun main() : Unit {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
for(i in 1..br.readLine().toInt()) bw.write("${i} \n")
bw.flush()
bw.close()
}
1번의 풀이가 메모리의 부담이 있을 것 같아서 BufferedReader와 BufferedWriter를 활용하여 메모리 부담을 최대한 줄여 보았다. 단순한 출력이기 때문에 풀이는 비슷한것을 볼 수 있다. 단지 사용방법만 다를 뿐이다.
- 결과
확실히 메모리 크기가 차이나는 만큼, 풀이 시간이 확연히 차이가 난다. 1540ms와 224ms라니.. 이건 큰 발전이다.
게다가 두 코드 모두 한번에 성공한게 너무 뿌듯하다.. 나날이 발전하는게 보이는구만!!
#Kotlin #Android #Develop #코틀린 #안드로이드 #개발 #AppDevelop #앱개발
#baekjoon #github #백준 #깃헙 #깃허브 #프로그래밍 #앱개발자 #개발자 #취준 #취준생
#알고리즘 #Algorithm #문제풀이
728x90
반응형
'코딩 (독학) > ★ Algorithm' 카테고리의 다른 글
[백준] 11021번 : A+B-7 - Kotlin [코틀린] (0) | 2022.04.20 |
---|---|
[백준] 15552번 : 빠른 A+B - Kotlin [코틀린] (0) | 2022.04.15 |
[백준] 2480번 : 주사위 세개 - Kotlin [코틀린] (0) | 2022.04.15 |
[백준] 2884번 : 알람 시계 - Kotlin [코틀린] (0) | 2022.04.11 |
[백준] 2588번 : 곱셈 - Kotlin [코틀린] (0) | 2022.04.06 |