본문 바로가기

코딩 문제/백준

백준 - 1059번

728x90

 

풀이

 

import java.util.Scanner;

import java.util.Arrays;

 

public class Main {

 

      public static void main(String[] args) {

 

            Scanner scan = new Scanner(System.in);

            int count = scan.nextInt();

            int idx = 0, check = 0, answer = 0;

            int start = 0, end = 0;

            int[] arr = new int[count]; // 배열 초기화

 

            // 배열에 담기

            while(idx < count){

                  arr[idx] = scan.nextInt();

                  idx++;

            }

            Arrays.sort(arr); // 배열 정렬

            int num = scan.nextInt(); // n 입력

            // n보다 큰 수 찾기 및 동일값 찾기

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

                  if(arr[i] >= num){

                        if(arr[i] == num){ // 동일 값이 배열에 있다면

                              check = 1; // 체크

                        }

                        idx = i; // 인덱스 할당

                        break;

                  }

            }

            // 배열에 동일한 값이 없다면

            if(check == 0){

                  if(idx != 0){

                        start = arr[idx-1] + 1;

                  }else{

                        start = 1;

                  }

                  end = arr[idx] - 1;

                  for(int i=start; i<=num; i++){

                        if(i<num){ // i < num 일 때

                              for(int j=num; j<=end; j++){

                                    answer++;

                              }

                        }else{ // i = num 일 때

                              for(int j=i+1; j<=end; j++){

                                    answer++;

                              }

                        }

                  }

            }

 

            System.out.println(answer);

      }

}

'코딩 문제 > 백준' 카테고리의 다른 글

백준 - 1769번  (0) 2021.03.15
백준 - 1074번  (0) 2021.03.15
백준 - 1037번  (0) 2021.03.15
백준 - 1018번  (0) 2021.03.15
백준 - 1010번  (0) 2021.02.26