강의로 돌아가기
violet4795

5,7,10 어디가 틀린걸까요..?

import java.util.Arrays;
class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
        int answer = 0;
        int[] student = new int[n];
        Arrays.fill(student, 1);

        for(int i = 0; i < reserve.length; i++){
            student[reserve[i]-1] += 1;

        }
        for(int i = 0; i < lost.length; i++){

            student[lost[i]-1] -= 1;
        }

        for(int i = 0; i < n; i++){
            if(student[i] == 0){
                if((i-1) != -1 && student[i-1] == 2){
                        student[i-1] = 1;
                    student[i] = 1;
                    answer++;
                }else if((i+1) != n && student[i+1] == 2){
                    student[i+1] = 1;
                    student[i] = 1;
                    answer++;
                }
            }else{
                answer++;
            }
        }
        return answer;
    }
}

자바풀이입니다. 단순하게 생각했는데 너무단순했는지..

그냥 포문세번돌렸습니다.
1로채우고, 여분인애들은 +1 도둑맞으면 -1

내가0이면 내앞이나 뒤에서 하나-1시키고 내꺼 +1

5,7,10번이 2ms가 초과되서 나오는데 2ms 초과되면 틀린걸로 간주되는건가요?

작성중인 코드―Solution.java
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
29
30
31
32
33
34
35
36
37
38
import java.util.Arrays;
class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
        int answer = 0;
        int[] student = new int[n];
        Arrays.fill(student, 1);

        for(int i = 0; i < reserve.length; i++){
            student[reserve[i]-1] += 1;

        }
        for(int i = 0; i < lost.length; i++){

            student[lost[i]-1] -= 1;
        }

        for(int i = 0; i < n; i++){
            if(student[i] == 0){
                if((i-1) != -1){
                    if(student[i-1] == 2){
                        student[i-1] = 1;
                    student[i] = 1;
                    answer++;
                    }
                }else if((i+1) != n){
                    if( student[i+1] == 2){
                        student[i+1] = 1;
                    student[i] = 1;
                    answer++;
                    }
                }
            }else{
                answer++;
            }
        }
        return answer;
    }
}
  • violet4795
    뭐지? 똑같은코드로 집와서하니까 됬어요; ㄷㄷ violet4795 2019.02.13 22:26
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.