Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- indices
- Developer
- PriorityQueue
- contentToString
- report
- 코틀린
- programmers
- heap
- 2D Array
- 프로그래머스
- dp
- sortedBy
- booleanarray
- Java
- Util
- GREEDY
- 2020
- Recursion
- dynamic programming
- Queue
- hackerrank
- Poll
- 알고리즘
- 동적계획법
- intarray
- Main
- lastIndex
- foreach
- solution
- Kotlin
Archives
- Today
- Total
Code in
프로그래머스 탐욕법(Greedy) 체육복 with Kotlin 본문
프로그래머스 탐욕법(Greedy) 부분 체육복 문제입니다.
IntelliJ에서의 풀이입니다.
val n: Int = 5 // 2 ~ 30
val lost: IntArray = intArrayOf(2, 4) // size 1 ~ n
val reserve: IntArray = intArrayOf(1, 3, 5) // size 1 ~ n
fun solution(n: Int, lost: IntArray, reserve: IntArray): Int {
var answer = 0
var current: IntArray = IntArray(n+2){1} // 번호는 1부터 시작 끝 1개는 error 방지
lost.forEach { current[it]-- }
reserve.forEach { current[it]++ }
// current 파악
for (i in 1 .. n){
if (current[i] == 0 && current[i-1] == 2)
current[i]++.also { current[i-1]-- }
else if (current[i] == 0 && current[i+1] == 2)
current[i]++.also { current[i+1]-- }
}// 빌려주기
for (i in 1 .. n)
if (current[i] > 0) answer++
return answer
}
fun main() {
print(solution(n, lost, reserve)) // 5
}
URL: https://programmers.co.kr/learn/courses/30/lessons/42862
'알고리즘 스터디_문제풀이' 카테고리의 다른 글
프로그래머스 탐욕법(Greedy) 조이스틱 with Kotlin (1) | 2020.08.17 |
---|---|
프로그래머스 탐욕법(Greedy) 큰 수 만들기 with Kotlin, 테스트 케이스 추가 (1) | 2020.08.16 |
프로그래머스 완전탐색 카펫 with Kotlin (1) | 2020.08.14 |
프로그래머스 완전탐색 소수 찾기 with Kotlin (1) | 2020.08.14 |
프로그래머스 완전탐색 모의고사 with Kotlin (1) | 2020.08.13 |
Comments