๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์ด๋ถ„๊ฒ€์ƒ‰ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[JAVA/์ฝ”๋”ฉํ…Œ์ŠคํŠธ] ์ด๋ถ„๊ฒ€์ƒ‰

์š”์ผ์ด 2021. 6. 27. 22:54
๋ฐ˜์‘ํ˜•

* ์ด๋ถ„๊ฒ€์ƒ‰์ด๋ž€? ๋ฆฌ์ŠคํŠธ์—์„œ ๋ฐ˜์„ ์ชผ๊ฐœ ๋งž๋Š”์ง€ ํ™•์ธํ›„ ๋‹ค์‹œ ์ชผ๊ฐœ์„œ ํ™•์ธํ•˜๊ณ  ๊ทธ ์ž‘์—…์„ ๋ฐ˜๋ณตํ•˜์—ฌ ๊ฒ€์ƒ‰

 

์„ค๋ช…

์ž„์˜์˜ N๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. N๊ฐœ์˜ ์ˆ˜๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ๋‹ค์Œ N๊ฐœ์˜ ์ˆ˜ ์ค‘ ํ•œ ๊ฐœ์˜ ์ˆ˜์ธ M์ด ์ฃผ์–ด์ง€๋ฉด ์ด๋ถ„๊ฒ€์ƒ‰์œผ๋กœ M์ด ์ •๋ ฌ๋œ ์ƒํƒœ์—์„œ ๋ช‡ ๋ฒˆ์งธ์— ์žˆ๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”. ๋‹จ ์ค‘๋ณต๊ฐ’์€ ์กด์žฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž…๋ ฅ

์ฒซ ์ค„์— ํ•œ ์ค„์— ์ž์—ฐ์ˆ˜ N(3<=N<=1,000,000)๊ณผ M์ด ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

๋‘ ๋ฒˆ์งธ ์ค„์— N๊ฐœ์˜ ์ˆ˜๊ฐ€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.

์ถœ๋ ฅ

์ฒซ ์ค„์— ์ •๋ ฌ ํ›„ M์˜ ๊ฐ’์˜ ์œ„์น˜ ๋ฒˆํ˜ธ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์‹œ ์ž…๋ ฅ 1 

8 32 23 87 65 12 57 32 99 81

์˜ˆ์‹œ ์ถœ๋ ฅ 1

3

 

 

import java.util.*;

class Main {
	
	public void solution(int n, int m, List<Integer> list) {
		
		int result = 0;
		int lt = 0; 
		int rt = list.size();
		int mid= rt/2;
		
		Collections.sort(list);
		
		while(list.get(mid).intValue() != m) {
			if(list.get(mid).intValue() > m) {
				rt = mid;
				mid = (lt+rt)/2;
			}else {
				lt = mid;
				mid = (lt+rt)/2;
			}
		}
		
		result = mid+1;
		
		System.out.println(result);
		
		
	};
	
	public static void main(String args[]) {
		
		Main main = new Main();
		Scanner in = new Scanner(System.in);
		
		int N = in.nextInt();
		int M = in.nextInt();
		
		List<Integer> list = new ArrayList<>();
		
		for(int i=0; i<N; i++) {
			list.add(in.nextInt()); 
		}
		
		main.solution(N, M, list);
		 
    }

}
Comments