본문 바로가기

Kotlin/Kotlin Algorithm

[백준 Kotlin] 10807. 개수 세기

728x90
반응형

 

 

https://www.acmicpc.net/problem/10807

 

10807번: 개수 세기

첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거

www.acmicpc.net

 

 

 

 

 

 

4. 1차원 배열

 

10807. 개수 세기

 

 

 

 

 

총 N개의 정수가 주어졌을 때, 정수 v가 몇 개인지 구하는 프로그램을 작성하시오.

 

 

 

- 입력 : 첫째 줄에 정수의 개수 N(1 ≤ N ≤ 100)이 주어진다. 둘째 줄에는 정수가 공백으로 구분되어져있다. 셋째 줄에는 찾으려고 하는 정수 v가 주어진다. 입력으로 주어지는 정수와 v는 -100보다 크거나 같으며, 100보다 작거나 같다.

 

- 출력 : 첫째 줄에 입력으로 주어진 N개의 정수 중에 v가 몇 개인지 출력한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

총 코드

 

import java.io.*
import java.util.*

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val n = br.readLine()!!.toInt()

    val st = StringTokenizer(br.readLine(), " ")
    val arr = IntArray(n)
    var total = 0

    for (i in 0 until n) {
        arr[i] = st.nextToken().toInt()
    }

    val v = br.readLine()!!.toInt()

    for(i in 0 until n) {
        if (arr[i] == v)  {
            total ++
        }
    }
    println(total)
}

 

 

- n으로 첫째 줄 정수의 개수를 받아올 변수를 선언

- 첫 번째 for문 :  공백으로 구분 된 정수를 StringTokenizer를 통해 공백을 없애준 후, arr로 선언한 Int 배열에 담아준다.

- 셋째 줄에 찾으려고 하는 정수 v를 읽어오는 변수를 선언

- 두 번째 for문 : 배열에서 찾으려고 하는 정수와 같은 숫자가 있는 값을 찾고, 그 값을 total에 더해준다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

여기서 BufferedWriter를 사용하여 출력의 차이가 있는지 비교해보자 ! 

(위 아래 둘 다 성공한 코드)

 

 

 

 

 

 

 

 

 

 

 

 

import java.io.*
import java.util.*

fun main() {
    val br = BufferedReader(InputStreamReader(System.`in`))
    val bw = BufferedWriter(OutputStreamWriter(System.out))
    val n = br.readLine()!!.toInt()

    val st = StringTokenizer(br.readLine(), " ")
    val arr = IntArray(n)
    var total = 0

    for (i in 0 until n) {
        arr[i] = st.nextToken().toInt()
    }

    val v = br.readLine()!!.toInt()

    for(i in 0 until n) {
        if (arr[i] == v)  {
            total ++
        }
    }
    bw.write("$total\n")
    bw.close()
}

 

 

 

 

 

 

이렇게 BufferedWriter를 통해 값을 출력해주었다. 

 

 

 

 

 

 

 

1번 : println()

2번 : BufferedWriter

 

 

 

 

 

 

 

둘 다 시간은 동일, 코드 길이가 길어져 메모리 차이가 미세하게 있다. 

 

사실 이 코드에서 둘의 차이는 크지 않다고 생각한다.

 

 

 

 

 

 

메모리를 더 사용하는 코드가 생기면 다시 비교를 해보도록 하자 !

 

 

 

 

728x90
반응형

'Kotlin > Kotlin Algorithm' 카테고리의 다른 글

[백준 Kotlin] 10810. 공 넣기  (0) 2023.03.29
[백준 Kotlin] 10871. X보다 작은 수  (0) 2023.03.28
[백준 Kotlin] 2438. 별찍기 -1  (0) 2023.03.27
[백준 Kotlin] 15552. 빠른 A+B  (0) 2023.03.26
[백준 Kotlin] 10950. A+B-3  (0) 2023.03.24