4. 1차원 배열

WonDDak·2023년 3월 28일
0

BAEKJOON

목록 보기
4/10

1차원 배열

백준 문제풀이 1차원 배열 부분입니다.

배열 부분에서 중요한것은
한줄에 " "로 여러숫자를 읽어올때 여러방법이 있지만

저는 다음과 같은 방법을 주로 사용합니다.(이게 편합니다~)

private val bf = BufferedReader(InputStreamReader(System.`in`))
val array = bf.readLine().split(" ").map { it.toInt() }

StringTokenizer를 이용해서 가져오셔도 됩니다.

private val bf = BufferedReader(InputStreamReader(System.`in`))
val n = bf.readLine().toInt()
val st = StringTokenizer(bf.readLine())

val array = IntArray(n)
for (index in 0 until n) {
	array[index] = st.nextToken().toInt()
}

4단계 풀이 입니다.

import java.io.BufferedReader
import java.io.InputStreamReader
import java.lang.Exception
import java.util.*
import kotlin.math.round

class Chapter4 {

    private val bf = BufferedReader(InputStreamReader(System.`in`))

    //https://www.acmicpc.net/problem/10807
    fun solution_10807() {
        try {
            val n = bf.readLine().toInt()
            val array = bf.readLine().split(" ").map { it.toInt() }
            val v = bf.readLine().toInt()
            println(array.filter { it == v }.size)
        } catch (e: Exception) {

        }
    }

    //https://www.acmicpc.net/problem/10871
    fun solution_10871() {
        try {
            val (n,x) = bf.readLine().split(" ").map { it.toInt() }
            val array = bf.readLine().split(" ").map { it.toInt() }
            println(array.filter { it < x }.joinToString(" "))
        } catch (e: Exception) {

        }
    }

    //https://www.acmicpc.net/problem/10818
    fun solution_10818() {
        try {
            val n = bf.readLine().toInt()
            val st = StringTokenizer(bf.readLine())

            val array = IntArray(n)
            for (index in 0 until n) {
                array[index] = st.nextToken().toInt()
            }
            array.sort()
            println("" + array[0] + " " + array[n - 1])
        } catch (e: Exception) {

        }
    }

    //https://www.acmicpc.net/problem/2562
    fun solution_2562() {
        try {
            val array = IntArray(9)
            for (index in 0..8) {
                array[index] = bf.readLine().toInt()
            }
            val max = array.maxOf { it }
            println(max)
            println(array.indexOf(max) + 1)
        } catch (e: Exception) {

        }
    }

    //https://www.acmicpc.net/problem/10810
    fun solution_10810() {
        val (n,m) = bf.readLine().split(" ").map { it.toInt() }
        val array = IntArray(n)
        for ( idx in 1..m) {
            val (i,j,k) = bf.readLine().split(" ").map { it.toInt() }
            for (index in i-1 until j) {
                array[index] = k
            }
        }
        println(array.joinToString(" "))
    }

    //https://www.acmicpc.net/problem/10813
    fun solution_10813() {
        val (n,m) = bf.readLine().split(" ").map { it.toInt() }
        val array = IntArray(n) {it+1}
        for ( idx in 1..m) {
            val (i,j) = bf.readLine().split(" ").map { it.toInt() - 1 }
            if (i == j) {
                continue
            }
            val temp = array[i]
            array[i] = array[j]
            array[j] = temp
        }
        println(array.joinToString(" "))
    }

    //https://www.acmicpc.net/problem/5597
    fun solution_5597() {
        val array = (1..30).toMutableSet()
        for (i in 1 .. 28) {
            val n = bf.readLine().toInt()
            array.remove(n)
        }
        println(array.joinToString("\n"))

    }

    //https://www.acmicpc.net/problem/3052
    fun solution_3052() {
        try {
            val mSet = mutableSetOf<Int>()
            for (i in 0..9) {
                val num = bf.readLine().toInt()
                mSet.add(num % 42)
            }
            println(mSet.size)

        } catch (e: Exception) {
            println(e)
        }
    }

    //https://www.acmicpc.net/problem/10811
    fun solution_10811() {
        val (n,m) = bf.readLine().split(" ").map { it.toInt() }
        val array = IntArray(n) {it+1}
        for ( idx in 1..m) {
            val (i,j) = bf.readLine().split(" ").map { it.toInt() - 1 }
            if (i == j) {
                continue
            }
            val mid: Int = (i + j) / 2
            for (index in i..mid) {
                val temp = array[index]
                array[index] = array[j - index + i]
                array[j - index + i] = temp
            }
        }
        println(array.joinToString(" "))
    }

    //https://www.acmicpc.net/problem/1546
    fun solution_1546() {
        try {
            val n = bf.readLine().toInt()
            val list = mutableListOf<Double>()
            val st = StringTokenizer(bf.readLine())
            for (i in 0 until n) {
                list.add(st.nextToken().toDouble())
            }
            list.sort()
            val mMax = list.last()
            for (i in list.indices){ list[i] = (list[i]/mMax) *100 }
            println((list.sumOf { it }/ n))


        } catch (e: Exception) {
            println(e)
        }
    }
}

fun main() {
    Chapter4().solution_10811()
}
profile
안녕하세요. 원딱입니다.

0개의 댓글