프로그래머스 알고리즘 Level 1 체육복

2023. 1. 26. 15:31알고리즘/문제

https://school.programmers.co.kr/learn/courses/30/lessons/42862

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

풀이 - 성공 

class Solution {
    fun solution(n: Int, lost: IntArray, reserve: IntArray): Int {
        var answer = 0
        val lostList = lost.filterNot { reserve.contains(it) }.sorted().toMutableList()
        val reserveList = reserve.filterNot { lost.contains(it) }.sorted()
        var student = 0  
        for(i in reserveList.indices) {
            for(j in lostList.indices) {
                if(reserveList[i]-1 == lostList[j] || reserveList[i]+1 == lostList[j]) {
                    student++
                    lostList.remove(lostList[j])
                    break
                }
            }    
        }
        answer = n-lostList.size
        return answer
    }
    
}

주의해야 할 것은 빌려줄 수 있는 사람 목록에 도난당한 사람이 같이 있는 경우도 생각해야 합니다.

또한 정렬이 안되어 있는 경우도 있기 때문에 정렬해야 합니다.