[백준] 2529번: 부등호 - Kotlin[코틀린]

2023. 11. 29. 23:20·알고리즘/Baekjoon

문제

 

 

2529번: 부등호

여러분은 제시된 부등호 관계를 만족하는 k+1 자리의 최대, 최소 정수를 첫째 줄과 둘째 줄에 각각 출력해야 한다. 단 아래 예(1)과 같이 첫 자리가 0인 경우도 정수에 포함되어야 한다. 모든 입력

www.acmicpc.net

 


풀이

 

 부등호를 만족하는 최소와 최대 정수를 백트래킹으로 찾는 문제이다. 입력받은 부등호에 따라 올바른 숫자를 선택하고 재귀적으로 탐색을 진행한다. 가장 먼저 완성된 답이 최소 정수, 가장 나중에 완성된 답이 최대 정수가 되는 것으로 각각 출력해주면 된다.

 


코드

 

fun main() {
    val br = System.`in`.bufferedReader()
    val bw = System.out.bufferedWriter()

    val num = br.readLine().toInt()
    val ex = br.readLine().split(' ').map { it }

    var visited = BooleanArray(10)
    val ans = mutableListOf<String>()
    
    fun dfs(start: Int, depth: Int, word: String) {
        if(depth == num) {
            ans.add(word)
            return
        }
        for(i in 0 until 10) {
            if(visited[i]) continue
            if(ex[depth] == ">") {
                if(start > i) {
                    visited[i] = true
                    dfs(i, depth+1, word+i)
                    visited[i] = false
                }
            } else {
                if(start < i) {
                    visited[i] = true
                    dfs(i, depth + 1, word + i)
                    visited[i] = false
                }
            }
        }
    }

    for(i in 0 until 10) {
        visited = BooleanArray(10)
        visited[i] = true
        dfs(i, 0, "$i")
        visited[i] = false
    }

    bw.write("${ans.last()}\n${ans.first()}")
    bw.flush()
    bw.close()
    br.close()
}

 

'알고리즘 > Baekjoon' 카테고리의 다른 글

[백준] 2504번: 괄호의 값 - Kotlin[코틀린]  (0) 2023.12.05
[백준] 4485번: 녹색 옷 입은 애가 젤다지? - Kotlin[코틀린]  (0) 2023.11.30
[백준] 18352번: 특정 거리의 도시 찾기 - Kotlin[코틀린]  (0) 2023.11.28
[백준] 17472번: 다리 만들기 2 - Kotlin[코틀린]  (0) 2023.11.24
[백준] 6479번: 전력난 - Kotlin[코틀린]  (0) 2023.11.22
'알고리즘/Baekjoon' 카테고리의 다른 글
  • [백준] 2504번: 괄호의 값 - Kotlin[코틀린]
  • [백준] 4485번: 녹색 옷 입은 애가 젤다지? - Kotlin[코틀린]
  • [백준] 18352번: 특정 거리의 도시 찾기 - Kotlin[코틀린]
  • [백준] 17472번: 다리 만들기 2 - Kotlin[코틀린]
junghoooooon
junghoooooon
  • junghoooooon
    코드팁스
    junghoooooon
  • 전체
    오늘
    어제
    • 전체 (120)
      • 안드로이드 (0)
        • 코드팁스 (0)
      • 유니티 (0)
        • 코드팁스 (0)
      • 알고리즘 (118)
        • 알고리즘 (0)
        • Baekjoon (118)
      • GitHub (0)
      • 티스토리 (2)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      티스토리
      누적 합
      MST
      분리집합
      구현
      투 포인터
      문자열
      BFS
      dfs
      유니온파인드
      큐
      에라토스테네스의 체
      백트래킹
      모듈러 곱셈 역원
      분할 정복
      크루스칼
      피보나치
      스택
      재귀
      DP
      정렬
      그래프이론
      그래프 탐색
      우선순위 큐
      그리디
      이분 탐색
      소수 판정
      수학
      프림
      브루트포스
    • hELLO· Designed By정상우.v4.10.2
    junghoooooon
    [백준] 2529번: 부등호 - Kotlin[코틀린]
    상단으로

    티스토리툴바