2023. 10. 5. 14:38ใ์ธํ๋ฐ/์๋ฐ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ์ ๋ฌธ : ์ฝ๋ฉํ ์คํธ ๋๋น
https://hyejin.tistory.com/1201
-> ์ด์ ๋ฌธ์ ํ์ด
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๋ก ํ์ฉํ ์ ์๋์ง๋ ๊ณ ๋ฏผํด๋ณด์. !