์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜1. String (๋ฌธ์ž์—ด) : ์ค‘๋ณต๋ฌธ์ž์ œ๊ฑฐ

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

728x90

 

https://hyejin.tistory.com/1201

 

์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜1. String (๋ฌธ์ž์—ด) : ํŠน์ • ๋ฌธ์ž ๋’ค์ง‘๊ธฐ

https://hyejin.tistory.com/1200 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜1. String (๋ฌธ์ž์—ด) : ๋‹จ์–ด ๋’ค์ง‘๊ธฐ https://hyejin.tistory.com/1199 ์ž๋ฐ” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ํ’€์ด ์ž…๋ฌธ. ์„น์…˜1. String (๋ฌธ์ž์—ด) : ๋ฌธ์žฅ ์† ๋‹จ์–ด https://hyeji

hyejin.tistory.com

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

 

 

6. ์ค‘๋ณต ๋ฌธ์ž ์ œ๊ฑฐ 

 
 

์„ค๋ช…

์†Œ๋ฌธ์ž๋กœ ๋œ ํ•œ๊ฐœ์˜ ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋˜๋ฉด ์ค‘๋ณต๋œ ๋ฌธ์ž๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์„ธ์š”.

์ค‘๋ณต์ด ์ œ๊ฑฐ๋œ ๋ฌธ์ž์—ด์˜ ๊ฐ ๋ฌธ์ž๋Š” ์›๋ž˜ ๋ฌธ์ž์—ด์˜ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

 

์ž…๋ ฅ

์ฒซ ์ค„์— ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 100์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

 

์ถœ๋ ฅ

์ฒซ ์ค„์— ์ค‘๋ณต๋ฌธ์ž๊ฐ€ ์ œ๊ฑฐ๋œ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

 

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

ksekkset

 

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

kset

 

 

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

public String solution(String input)
{
   List<String> list = new ArrayList<>();
   Set<String> uniqueValues = new HashSet<>();
   for (String s : input.split(""))
   {
      if (uniqueValues.add(s))
      {
         list.add(s);
      }
   }
   return String.join("", list);
}

๐Ÿ‘ฉ‍๐Ÿ’ป : ์ฒซ๋ฒˆ์งธ๋กœ ๋‚ด๊ฐ€ ํ’€์–ด๋ณธ ๋ฐฉ์‹์€ Set์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. Set์˜ ํŠน์ง•์ด ๋ฐ”๋กœ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— Set์— add ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ์ค‘๋ณต๋˜์ง€ ์•Š์€ ๋ฌธ์ž๋ผ๋Š” ๋œป์ด๋ฏ€๋กœ list์— add ํ•ด์คฌ๋‹ค. 

(์ด๋•Œ List๋„ ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” Set์€ ๋งจ ์ฒ˜์Œ ๋ฌธ์ž๊ฐ€ ์•„๋‹Œ ๋งจ ๋งˆ์ง€๋ง‰ ๋ฌธ์ž๊ฐ€ ์ €์žฅ๋ผ์„œ ์ˆœ์„œ๊ฐ€ ๋งž์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ) 

 

๊ทธ ๋‹ค์Œ ๋ฐ˜ํ™˜ ํƒ€์ž…์ธ String์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ String.join ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ list์˜ ์›์†Œ๋ฅผ "" ๋นˆ ๋ฌธ์ž์—ด๋กœ ์ด์–ด์คฌ๋‹ค. 

 

 

 

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

public String solution2(String input)
{
   StringBuilder answer = new StringBuilder();
   String[] split = input.split("");
   for (String s : split)
   {
      if (!answer.toString().contains(s)) {
         answer.append(s);
      }
   }
   return answer.toString();
}

๐Ÿ‘ฉ‍๐Ÿ’ป : ๋‚ด๊ฐ€ ํ‘ผ ๋‘๋ฒˆ์งธ ๋ฐฉ์‹์ด๋‹ค. ์ฒซ๋ฒˆ์งธ ๋ฌธ์ œ ํ’€์ด ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€๊ณ  ๋‚˜์„œ ๋ญ”๊ฐ€... ์ด ์„น์…˜์˜ ์ฃผ์ œ๋Š” String์ธ๋ฐ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ‘ผ ๊ฒƒ ๊ฐ™์€ ์ฐ์ฐํ•จ์— ๋ฌธ์ž์—ด๋กœ๋งŒ ํ’€์–ด๋ณด์ž! ๋ผ๋Š” ์ƒ๊ฐ์— ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์–ด๋ดค๋‹ค. 

 

๋‘๋ฒˆ์งธ ํ’€์ด์—์„œ๋Š” String์˜ contains ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ–ˆ๋‹ค. ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด input์„ ๋นˆ ๋ฌธ์ž์—ด๋กœ split ํ•œ ๋‹ค์Œ, 

๊ทธ ๋ฌธ์ž๊ฐ€ answer์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š๋‹ค๋ฉด append ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. 

 

 

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

    public String solution3(String input)
   {
      String answer = "";
      for (int i = 0; i < input.length(); i++)
      {
//       System.out.println(input.charAt(i) + " " + i + " " + input.indexOf(input.charAt(i)));
         if (i == input.indexOf(input.charAt(i))) {
            answer += input.charAt(i);
         }
      }
      
      return answer;
   }

๐Ÿ‘พ : ๋งˆ์ง€๋ง‰์€ ๊ฐ•์‚ฌ๋‹˜์˜ ํ’€์ด ๋ฐฉ์‹์œผ๋กœ indexOf๋ฅผ ์‚ฌ์šฉํ–ˆ๋‹ค. indexOf๋Š” ์ฃผ์–ด์ง„ ๋ฌธ์ž๊ฐ€ ์œ„์น˜ํ•˜๋Š” ์ฒซ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  ์—†์œผ๋ฉด -1๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.  

System.out.println(input.charAt(i) + " " + i + " " + input.indexOf(input.charAt(i)));

๋ฅผ ์ถœ๋ ฅํ•ด๋ณด๋ฉด

k 0 0
s 1 1
e 2 2
k 3 0
k 4 0
s 5 1
e 6 2
t 7 7

๋กœ ๋‚˜์˜ค๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ k, s, e ๋ฅผ ๋ณด๋ฉด  ์ž์‹ ์˜ ์œ„์น˜ i ์™€ indexOf์˜ ์œ„์น˜๊ฐ€ ๋‹ค๋ฅด๋‹ค. ๊ทธ ์ด์œ ๋Š” ์ด๋ฏธ ์•ž์— ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ !! 

๋”ฐ๋ผ์„œ ์กฐ๊ฑด์‹์— i ์™€ indexOf i์˜ ์œ„์น˜๊ฐ€ ๋‹ค๋ฅผ ๊ฒฝ์šฐ answer์— ๋”ํ•ด์ฃผ๋ฉด ๋œ๋‹ค. 

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป :  indexOf๋ฅผ ํ™œ์šฉํ•ด์„œ ๋ฌธ์ œ ํ‘ธ๋Š” ๋ฐฉ๋ฒ•์„ ์•ž์—์„œ๋„ ๋ช‡๋ฒˆ ์•Œ๋ ค์ฃผ์…จ๋Š”๋ฐ ์ต์ˆ™ํ•˜์ง€ ์•Š์•„์„œ ๊ทธ๋Ÿฐ๊ฐ€.. ํ™œ์šฉ์„ ์ž˜ ๋ชปํ•œ๋‹ค.. 

๋‹ค์Œ ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๋•Œ ํ˜ผ์ž ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์œผ๋กœ ํ’€์–ด๋ณด๋ฉด์„œ indexOf๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š”์ง€๋„ ๊ณ ๋ฏผํ•ด๋ณด์ž. ! 

 

 

 

 

 

728x90