강의로 돌아가기
nedcrow

1,2,3,9,10

연속으로 도난당했어도, 여별까지 빌려줄 수 있다고 가정하면 9개까지 맞았었는데,
여벌은 본인만 입는다고 바꿨더니 5개밖에 통과 못합니다.

List를 사용했는데,
처리 속도가 문제일까요? 천재분들께 부탁드립니다.

작성중인 코드―Solution.cs
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
using System;
using System.Collections.Generic;

public class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
        int answer = 0;
        List<int> specialLosts = new List<int>(); //스페셜 Lost만 모아봤습니다.
        Array.Sort(lost); 
        Array.Sort(reserve);
        foreach(int student in lost){
            int indexC = Array.FindIndex(reserve,x=>x==student); //본인이 reserve.
            if(indexC >= 0 ){ reserve[indexC]=0; answer++; }//reserve & lost 면 본인 옷 입음.
            else{specialLosts.Add(student);}//reserve 아니면 따로 Special한 List에 담음.            
        }      
        if(specialLosts.Count >= 1){
            foreach(int student in specialLosts){
                int indexA = Array.FindIndex(reserve,x=>x==student-1); //앞사람이 reserve면 위치 기억.
                int indexB = Array.FindIndex(reserve,x=>x==student+1); //뒷사람이 reserve면 위치 기억.

                if(indexA >= 0 ){reserve[indexA]=0; answer++; } //lost 중 앞 사람 것 빌림 표시.
                else if(indexB >= 0 ){reserve[indexB]=0; answer++; } //lost 중 뒷 사람 것 빌림 표시.
            }
        }

        answer = n - lost.Length + answer;
        return answer;
    }
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.