본문 바로가기
BOJ

[Java] 백준 1337번 - 올바른 배열 //유지니의 일기7

by yujinkimkim 2023. 1. 20.

1337번: 올바른 배열 (acmicpc.net)

 

1337번: 올바른 배열

첫째 줄에 배열의 크기 N이 주어진다. N은 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에 배열의 원소가 한 줄에 하나씩 주어진다. 원소는 1,000,000,000보다 작거나 같은 음이 아닌 정수이

www.acmicpc.net

첨에 접근을

입력받은 값들 리스트에 넣어서 서로 차이가 얼마씩 나면

연속이고 막 아니고

일케 하려했는데

경우의 수도 너무 많고

이건 아닌 거 같아서

구글링 했는데

레죤두 코드 발견해서

약간의 도움을 받았당


package java1;
import java.util.*;
import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;

public class study2 {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int n = Integer.parseInt(br.readLine());
		ArrayList<Integer> arr = new ArrayList<>();
		int num;
		
		for(int i = 0 ; i < n ; i++)
		{
			num = Integer.parseInt(br.readLine());
			arr.add(num);
		}
		
		Collections.sort(arr);
		
		int cnt = 0;
		ArrayList<Integer> cntArr = new ArrayList<>();
		for(int i = 0 ; i < n ; i++)
		{
			cnt = 0;
			for(int j = arr.get(i); j < arr.get(i)+5 ; j++)
			{
				if(arr.contains(j))
					cnt++;
			}
			cntArr.add(cnt);
		}
		System.out.println(5 - Collections.max(cntArr));
	}

}

버퍼리더랑 스캐너 차이가 

버퍼리더는 입력 한번에 받고

스캐너는 계속 계속 받아서 둘이 속도 차이가 난다네용

 

배열은 오름차순 할 때, 포함하는지 확인할때

Arrays.sort(), indexOf()

리스트는

Collections.sort(), contains()

 

저 너무 갈 길이 머네용...

 

평생 살 것처럼 꿈을 꾸어라.그리고 내일 죽을 것처럼 오늘을 살아라.
– 제임스 딘

댓글