ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [백준][Kotlin]1253번 좋다
    백준 2023. 2. 26. 00:47
    728x90

    해당 문제는 투 포인터를 사용하여 주어진 자료의 양 끝에서부터 2개의 숫자를 비교하면서 좋은 수의 갯수를 찾는 문제였습니다. 작성하면서 주의 할 점으로는 좋은 수 인지 확인할 때 포인터의 위치는 좋은 수 인지 확인하는 자료의 인덱스가 겹치면 안된다는 점입니다.

    그리고 개인적으로 프로그래머스도 매우 좋은 코테 연습사이트이지만 문제의 난이도 및 통과 기준은 백준이 좀 더 빡빡(?) 한 것 같다는 생각이 들었습니다.

     

    하기는 작성한 코드와 제출 결과입니다.

    import java.util.*
    
    fun main() {
    //    val s = System.currentTimeMillis()
        var st = StringTokenizer(readln())
        val N = st.nextToken().toInt() // 수의 개수
        st = StringTokenizer(readln())
    
        var arr = IntArray(N){0}
    
        repeat(N){
            arr[it] = st.nextToken().toInt()
        }
    
        arr.sort()
    
        var count = 0
    
        for(i in 0 until N){
            var s = 0
            var e = N-1
            var check = arr[i]
            while(s < e){
                if(arr[s] + arr[e] == check){
                    if(s != i && e != i){
                        count++
                        break
                    } else if(s == i){
                        s++
                    } else if(e == i) {
                        e--
                    }
                } else {
                    if(arr[s] + arr[e] < check){
                        s++
                    } else {
                        e--
                    }
                }
            }
    
        }
    
    //    val e = System.currentTimeMillis()
        println(count)
    //    println((e-s)/1000.0)
    
    } 

    '백준' 카테고리의 다른 글

    [백준][Kotlin]2164번 카드2  (0) 2023.02.26
    [백준][Kotlin] 2018번 수들의 합5  (0) 2023.02.26
    [백준][Kotlin]1940번 주몽  (0) 2023.02.26
    [백준][Kotlin]1874번 스택 수열  (0) 2023.02.26
    [백준][Kotlin]1546번 평균  (0) 2023.02.26
Designed by Tistory.