코딩테스트

프로그래머스 '체육복' 코테풀이

생각스택 2025. 3. 23. 21:01
반응형

프로그래머스에서

코틀린 언어, 레벨 1, 정답률이 높은 순서대로 문제를 풀고 있습니다.

이번 문제는 '체육복' 문제입니다.

사이트: https://school.programmers.co.kr/learn/challenges?order=acceptance_desc&levels=1&languages=kotlin&page=3

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr

위의 사이트에서

3페이지에서 아래로 내리면

문제를 보실 수 있습니다.

제 풀이는 이렇습니다.

저는 어렵게 풀어서

더 나은 답이나 궁금하신 점 있으시면 댓글로 알려주세요

import java.util.*

class Solution {
    fun solution(n: Int, lost: IntArray, reserve: IntArray): Int {
        var answer = 0
        val reserveSet = reserve.toHashSet()        
        val reserveSet2 = reserve.toHashSet()
        val lostSet = lost.toHashSet()
  
        // 공통 원소를 찾고, 두 Set에서 제거           
        reserveSet.removeAll(reserveSet.intersect(lostSet))
        lostSet.removeAll(lostSet.intersect(reserveSet2))
        
        val sortedReserveList = reserveSet.sorted()
        for (student in sortedReserveList) {
            System.out.println("studnet: $student")
            if (lostSet.contains(student - 1)) {
                lostSet.remove(student - 1)
            } else if (lostSet.contains(student + 1)) {
                lostSet.remove(student + 1)
            } 
        }
    
        return n - lostSet.size
    }
}
반응형