์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ์ด๋ถ„ ๊ฒ€์ƒ‰

2023. 11. 9. 09:27ใ†์ธํ”„๋Ÿฐ/์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ž…๋ฌธ : ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„

728x90

 

https://hyejin.tistory.com/1246

 

์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ์ขŒํ‘œ ์ •

https://hyejin.tistory.com/1245 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ์žฅ๋‚œ ๊พธ https://hyejin.tistory.com/1244 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searc

hyejin.tistory.com

-> ์ด์ „ ๋ฌธ์ œ ํ’€์ด 

 

 

 

8. ์ด๋ถ„ ๊ฒ€์ƒ‰ 

์„ค๋ช…

์ž„์˜์˜ 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

 

 

๋ฌธ์ œ ํ’€์ด 1

public int solution(int n, int m, int[] arr)
{
   int answer = 0;
   
   Arrays.sort(arr);
   
   for (int i = 0; i < n; i ++)
   {
      if (arr[i] == m) {
         return i + 1;
      }
   }
   
   return answer;
}

 

๐Ÿ‘ฉ‍๐Ÿ’ป : ๋‚˜๋Š” ์ด ๋ฌธ์ œ๋ฅผ ๊ทธ๋ƒฅ.. ๋‹จ์ˆœํžˆ ์ฃผ์–ด์ง„ arr ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ์„ ํ•ด์ฃผ๊ณ , ๊ทธ ๋‹ค์Œ for ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉด์„œ m ๊ฐ’๊ณผ arr ๊ฐ’์ด ๊ฐ™์€์ง€ ๋น„๊ตํ•˜๊ณ , ๊ฐ™์œผ๋ฉด ๊ทธ arr์˜ ์ธ๋ฑ์Šค ๊ฐ’ + 1 ์„ ๋ฆฌํ„ดํ•˜๋„๋ก ํ–ˆ๋‹ค. 

์ฆ‰, ์ˆœ์ฐจ ๊ฒ€์ƒ‰์„ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. 

 

 

๋ฌธ์ œ ํ’€์ด 2

public int solution2(int n, int m, int[] arr)
{
   int answer = 0;
   Arrays.sort(arr); // ์ด๋ถ„ ๊ฒ€์ƒ‰์€ ์ •๋ ฌ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ด์•ผํ•จ
   
   int lt = 0, rt = n-1;
   while (lt <= rt)
   {
      int mid = (lt + rt) / 2;
      
      if (arr[mid] == m) {
         answer = mid + 1;
         break;
      }
      
      if (arr[mid] > m) {
         rt = mid-1;
      }else {
         lt = mid + 1;
      }
   }
   
   return answer;
}

๐Ÿ‘พ : ๊ฐ•์‚ฌ๋‹˜์ด ์ˆœ์ฐจ ๊ฒ€์ƒ‰์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด ๋งŒ์•ฝ ์ตœ์•…์˜ ๊ฒฝ์šฐ๋กœ 100๊ฐœ์˜ ์ˆซ์ž๊ฐ€ ์ฃผ์–ด์กŒ๋Š”๋ฐ ๋งจ ๋งˆ์ง€๋ง‰ ๊ฐ’์„ ๊ตฌํ•˜๋ผ๊ณ  ํ•˜๋ฉด ๋ฐ˜๋ณต๋ฌธ์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ๋น„๊ตํ•ด ๋‚˜์•„๊ฐ€์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ O(n) ์ด๋ผ๊ณ  ํ•œ๋‹ค. 

 

์ˆœ์ฐจ ๊ฒ€์ƒ‰์ด ์•„๋‹Œ ์ด๋ถ„ ๊ฒ€์ƒ‰์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€๋ฉด ๋” ๋น ๋ฅด๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ๋‹ค. 

๋จผ์ € ์ด๋ถ„ ๊ฒ€์ƒ‰์ด๋ž€ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด์„ ๋ฐ˜์œผ๋กœ ๋‚˜๋ˆ ์„œ ๊ทธ '๋ฐ˜'์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์ด ์ฃผ์–ด์ง„ m ๋ณด๋‹ค ํฌ๋ฉด ๊ทธ '๋ฐ˜' ๊ฐ’์— ์ด์ „ ๊ฐ’๋ถ€ํ„ฐ ํ•ด์„œ ๋‹ค์‹œ ๊ทธ ๋ฐ˜์„ ํƒ์ƒ‰ํ•˜๊ณ , ๋งŒ์•ฝ ์ฃผ์–ด์ง„ m ๋ณด๋‹ค ์ž‘์œผ๋ฉด ๊ทธ '๋ฐ˜'์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์˜ ๊ทธ ๋‹ค์Œ๊ฐ’๋ถ€ํ„ฐ ๋‹ค์‹œ ๊ทธ ๋ฐ˜์„ ํƒ์ƒ‰ํ•˜๊ณ ...

์ด๋Ÿฐ์‹์œผ๋กœ ํ•ด์„œ ๊ณ„์† ๋น„๊ตํ•ด๊ฐ€๋Š” ๊ฒƒ์ด๋‹ค! 

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ˆœ์ฐจ ๊ฒ€์ƒ‰๋ณด๋‹ค ๋น ๋ฅด๊ฒŒ ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90

'์ธํ”„๋Ÿฐ > ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ์ž…๋ฌธ : ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ๋งˆ๊ตฌ๊ฐ„ ์ •ํ•˜๊ธฐ (๊ฒฐ์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜)  (0) 2023.11.16
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ๋ฎค์ง๋น„๋””์˜ค (๊ฒฐ์ • ์•Œ๊ณ ๋ฆฌ์ฆ˜)  (4) 2023.11.09
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ์ขŒํ‘œ ์ •๋ ฌ  (1) 2023.11.08
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ์žฅ๋‚œ ๊พธ๋Ÿฌ๊ธฐ  (1) 2023.11.08
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ์ค‘๋ณต ํ™•์ธ  (0) 2023.11.07