프로그래머스
체육복
끝까지 처음처럼
2022. 9. 10. 13:45
728x90
class Solution {
fun solution(n: Int, lost: IntArray, reserve: IntArray): Int {
var answer = 0
var tempMap = mutableMapOf<Int,Int>()
for(i in 1 .. n){
//println("${i}번째 반복")
if (reserve.contains(i)) {
if(lost.contains(i)) {
tempMap.put(i,1)
//println("작동확인1")
continue
}
else {
tempMap.put(i,2)
//println("작동확인2")
}
}
else if(lost.contains(i)){
tempMap.put(i,0)
//println("작동확인3")
}
else {
tempMap.put(i,1)
//println("작동확인4")
}
}
println(tempMap)
for(i in 1 .. n){
if(tempMap.get(i)==2 && tempMap.get(i+1)==0 ){
if(tempMap.get(i-1)==0 && tempMap.get(i+2)==2 ){
tempMap.put(i,1)
tempMap.put(i-1,1)
continue
}
tempMap.put(i,1)
tempMap.put(i+1,1)
}
}
println(tempMap.size-1)
for(i in n downTo 2){
if(tempMap.get(i)==2 && tempMap.get(i-1)==0){
tempMap.put(i,1)
tempMap.put(i-1,1)
}
}
answer = tempMap.count{e-> e.value > 0 }
return answer
}
}
저의 현재 실력으로 푼 문제 답안이며, 가장 좋은 코드는 아닐 수 있으며, 코틀린을 공부하면서 추가적으로 알게 된 개념이 있어 다시 풀 경우 추가적으로 코드를 작성 할 수 있도록 하겠습니다.