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 |
Tags
- Queue
- sortedBy
- GREEDY
- foreach
- 2D Array
- booleanarray
- indices
- 알고리즘
- contentToString
- intarray
- Java
- solution
- 프로그래머스
- heap
- dp
- 동적계획법
- Util
- Main
- lastIndex
- PriorityQueue
- Kotlin
- 2020
- programmers
- Recursion
- report
- Poll
- hackerrank
- Developer
- 코틀린
- dynamic programming
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
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번�
programmers.co.kr
'알고리즘 스터디_문제풀이' 카테고리의 다른 글
프로그래머스 탐욕법(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