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

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

728x90

 

https://hyejin.tistory.com/1243

 

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

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

hyejin.tistory.com

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

 

 

5. ์ค‘๋ณต ํ™•์ธ 

์„ค๋ช…

ํ˜„์ˆ˜๋„ค ๋ฐ˜์—๋Š” N๋ช…์˜ ํ•™์ƒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์„ ์ƒ๋‹˜์€ ๋ฐ˜ ํ•™์ƒ๋“ค์—๊ฒŒ 1๋ถ€ํ„ฐ 10,000,000๊นŒ์ง€์˜ ์ž์—ฐ์ˆ˜ ์ค‘์—์„œ ๊ฐ์ž๊ฐ€ ์ข‹์•„ํ•˜๋Š” ์ˆซ์ž ํ•˜๋‚˜ ์ ์–ด ๋‚ด๋ผ๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋งŒ์•ฝ N๋ช…์˜ ํ•™์ƒ๋“ค์ด ์ ์–ด๋‚ธ ์ˆซ์ž ์ค‘ ์ค‘๋ณต๋œ ์ˆซ์ž๊ฐ€ ์กด์žฌํ•˜๋ฉด D(duplication)๋ฅผ ์ถœ๋ ฅํ•˜๊ณ ,

N๋ช…์ด ๋ชจ๋‘ ๊ฐ์ž ๋‹ค๋ฅธ ์ˆซ์ž๋ฅผ ์ ์–ด๋ƒˆ๋‹ค๋ฉด U(unique)๋ฅผ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

 

์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N(5<=N<=100,000)์ด ์ฃผ์–ด์ง„๋‹ค.

๋‘ ๋ฒˆ์งธ ์ค„์— ํ•™์ƒ๋“ค์ด ์ ์–ด ๋‚ธ N๊ฐœ์˜ ์ž์—ฐ์ˆ˜๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค.

 

์ถœ๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— D ๋˜๋Š” U๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

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

8
20 25 52 30 39 33 43 33

 

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

D

 

 

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

public String solution(int n, int[] arr)
{
   String answer = "U";
   ArrayList<Integer> arrayList = new ArrayList<>();
   
   for (int i : arr)
   {
      if (!arrayList.contains(i)) {
         arrayList.add(i);
      }else
      {
         return "D";
      }
   }
   
   return answer;
}

๐Ÿ‘ฉ‍๐Ÿ’ป : ๋‚˜๋Š” ์šฐ์„  ์ด ๋ฌธ์ œ๋ฅผ Arraylist์— arr ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๋„ฃ๋Š”๋ฐ, ์ด๋•Œ arraylist์— contains ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ด ์š”์†Œ๊ฐ€ ์ด๋ฏธ ๋“ค์–ด์žˆ์œผ๋ฉด "D" ๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ๊ณ , ๋“ค์–ด์žˆ์ง€ ์•Š๋‹ค๋ฉด arraylist์— addํ•ด์คฌ๋‹ค. 

 

 

 

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

public String solution2(int n, int[] arr)
{
   String answer = "U";
   Arrays.sort(arr);
   
   for (int i = 0; i< n-1; i++)
   {
      if (arr[i] == arr[i + 1]) {
         return "D";
      }
   }
   
   return answer;
}

๐Ÿ‘พ : ๊ฐ•์‚ฌ๋‹˜์€ ์ด ๋ฌธ์ œ๋ฅผ HashMap์œผ๋กœ ํ’€์—ˆ์„ ๊ฑฐ๋ผ๊ณ  ์–˜๊ธฐํ–ˆ๋Š”๋ฐ.. ๋‚˜๋Š” Arraylist๋กœ ํ’€๊ธดํ–ˆ๋‹ค.. ใ…‹ใ…‹ 

์•„๋ฌดํŠผ HashMap ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ์ง€๋งŒ ์ด ๋ฌธ์ œ๋ฅผ ์ •๋ ฌ๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ฃผ๊ธฐ ์œ„ํ•ด์„œ ์ด ๋ฌธ์ œ๋ฅผ ๊ฐ•์˜์— ํฌํ•จ์‹œ์ผฐ๋‹ค๊ณ  ํ•œ๋‹ค. 

 

Arrays.sort ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ arr ๋ฐฐ์—ด์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์ฃผ๊ณ , ๋ฐ˜๋ณต๋ฌธ์„ ๋„๋Š”๋ฐ n-1 ๊นŒ์ง€๋งŒ ๋Œ๋ฉด์„œ arr[i]์™€ arr[i+1]์ด ์„œ๋กœ ๊ฐ™์œผ๋ฉด "D"๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ๊ณ  ๋ชจ๋‘ ๋‹ค๋ฅด๋ฉด "U" ๋ฅผ ๋ฆฌํ„ดํ•˜๋„๋ก ํ–ˆ๋‹ค. 

 

 

 

 

 

 

 

 

 

728x90

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

์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ์ขŒํ‘œ ์ •๋ ฌ  (1) 2023.11.08
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ์žฅ๋‚œ ๊พธ๋Ÿฌ๊ธฐ  (1) 2023.11.08
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : Least Recently Used  (0) 2023.11.06
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ์‚ฝ์ž… ์ •๋ ฌ  (0) 2023.11.06
์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ch06. Sorting and Searching(์ •๋ ฌ, ์ด๋ถ„๊ฒ€์ƒ‰๊ณผ ๊ฒฐ์ •์•Œ๊ณ ๋ฆฌ์ฆ˜) : ๋ฒ„๋ธ” ์ •๋ ฌ  (1) 2023.11.03