💬 문제
https://www.acmicpc.net/problem/20006
💬 Idea
- roomArr를 돌면서 만약 입장할 수 있는 방이 있다면 방이 시작한 순서대로 입장시키기 위해 방을 배열에 저장한다.
- 입장할 수 있는 방이 있다면 입장시킨 후 반복문을 break하고,
- 입장할 수 있는 방이 없다면 새로운 방을 생성한다.
💬 풀이
func solution200006(){letpm=readLine()!.split(separator:"").map({Int(String($0))! })varroomArr:[(Int,Int)]=[]varroomInfo:[Int:[(Int,String)]]=[:]for_in0..<pm[0]{letp=readLine()!.split(separator:"").map({String($0)})letlevel=Int(p[0])!
letid=p[1]varroom=-1for(idx, r)in roomArr.enumerated(){if level >= r.0 && level <= r.1 && roomInfo[idx]!.count <pm[1]{
room = idx
roomInfo[idx]!.append((level, id))break}}if room ==-1{
// 새로운 방 생성
roomArr.append((level -10, level +10))roomInfo[roomArr.count -1]=[(level, id)]}}for(idx, _)in roomArr.enumerated(){ifroomInfo[idx]!.count ==pm[1]{print("Started!")}else{print("Waiting!")}forjinroomInfo[idx]!.sorted(by:{ $0.1< $1.1}){print("\(j.0)\(j.1)")}}}소요시간 : 29분
💬 문제https://www.acmicpc.net/problem/20006
💬 Idea💬 풀이소요시간: 29분