[백준] 1449번: 수리공 항승 - Kotlin[코틀린]

2023. 12. 17. 22:43·알고리즘/Baekjoon

문제

 

 

1449번: 수리공 항승

첫째 줄에 물이 새는 곳의 개수 N과 테이프의 길이 L이 주어진다. 둘째 줄에는 물이 새는 곳의 위치가 주어진다. N과 L은 1,000보다 작거나 같은 자연수이고, 물이 새는 곳의 위치는 1,000보다 작거나

www.acmicpc.net


풀이

 

 그리디 문제로 새로운 테이프를 언제 붙여줘야 하는지를 계산하는 문제이다.

 

 물이 새는 곳의 위치는 입력받아 배열에 저장하고, 이를 오름차순으로 정렬한다. 정렬된 배열을 기반으로 테이프를 붙여 주는데, 이전에 붙였던 테이프가 현재 물이 새는 곳에도 붙일 수 있다면 개수를 세지 않고 넘어간다. 붙여지는 범위는 현재 위치 + 테이프의 길이 - 1로 정하면 된다.

 

 테이프를 붙이는 범위를 현재 위치 + 테이프의 길이 - 1로 정하는 이유는 테이프를 붙일 수 있는 범위에 좌우의 0.5의 범위를 포함해야하기 때문이다. 예를 들어, 현재 위치가 3이고 테이프의 길이가 5라면, 테이프를 붙이는 범위는 3 + 5 - 1 = 7까지가 된다. 이 범위는 3, 4, 5, 6, 7 다섯 개의 위치를 커버하게 된다.

 


코드

 

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

    val (num, tape) = br.readLine().split(' ').map { it.toInt() }
    val pipe = br.readLine().split(' ').map { it.toInt() }.toIntArray()
    pipe.sort()
    
    var cnt = 0
    var res = 0

    for(i in 0 until num) {
        if(pipe[i] > res) {
            cnt++
            res = pipe[i] + tape - 1
        }
    }

    bw.write("$cnt")
    bw.flush()
    bw.close()
    br.close()
}

 

 

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

[백준] 1072번: 게임 - Kotlin[코틀린]  (0) 2023.12.19
[백준] 1213번: 팰린드롬 만들기 - Kotlin[코틀린]  (0) 2023.12.18
[백준] 13023번: ABCDE - Kotlin[코틀린]  (0) 2023.12.16
[백준] 2669번: 직사각형 네개의 합집합의 면적 구하기 - Kotlin[코틀린]  (0) 2023.12.13
[백준] 1339번: 단어 수학 - Kotlin[코틀린]  (0) 2023.12.11
'알고리즘/Baekjoon' 카테고리의 다른 글
  • [백준] 1072번: 게임 - Kotlin[코틀린]
  • [백준] 1213번: 팰린드롬 만들기 - Kotlin[코틀린]
  • [백준] 13023번: ABCDE - Kotlin[코틀린]
  • [백준] 2669번: 직사각형 네개의 합집합의 면적 구하기 - Kotlin[코틀린]
junghoooooon
junghoooooon
  • junghoooooon
    코드팁스
    junghoooooon
  • 전체
    오늘
    어제
    • 전체 (120)
      • 안드로이드 (0)
        • 코드팁스 (0)
      • 유니티 (0)
        • 코드팁스 (0)
      • 알고리즘 (118)
        • 알고리즘 (0)
        • Baekjoon (118)
      • GitHub (0)
      • 티스토리 (2)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

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

    티스토리툴바