๊ด€๋ฆฌ ๋ฉ”๋‰ด

Daehyunii's Dev-blog

์ค‘๋ณต ๋ฌธ์ž ์ œ๊ฑฐ(๊ธฐ๋ณธ ๋ฌธ์ œ ํ’€์ด) ๋ณธ๋ฌธ

๐Ÿ“š Language & CS knowledge/Algorithm (๊ธฐ์ดˆ๋ฌธ์ œํ’€์ด)

์ค‘๋ณต ๋ฌธ์ž ์ œ๊ฑฐ(๊ธฐ๋ณธ ๋ฌธ์ œ ํ’€์ด)

Daehyunii 2022. 8. 28. 21:56

๋ฌธ์ œ(์ถœ์ฒ˜ : ์ธํ”„๋Ÿฐ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด ๊ฐ•์˜, ์ •๋ณด์˜ฌ๋ฆผํ”ผ์•„๋“œ)

 

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

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

โ–ฃ ์ž…๋ ฅ์„ค๋ช…
์ฒซ ์ค„์— ๋ฌธ์ž์—ด์ด ์ž…๋ ฅ๋ฉ๋‹ˆ๋‹ค.

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

โ–ฃ ์ž…๋ ฅ์˜ˆ์ œ 1

ksekkset

โ–ฃ ์ถœ๋ ฅ์˜ˆ์ œ 1

kset

 

Tip

1) ๋นˆ ๋ฌธ์ž์—ด์„ ๊ฐ–๋Š” ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ ๋‹ค. (let result = '';)

2) ๋ฌธ์ž์—ด์„ ๋ฐ˜๋ณต์‹œํ‚จ๋‹ค.

3-1) indexOf ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•ด์„œ result๋ณ€์ˆ˜์— ํ•ด๋‹น ๋ฌธ์ž๊ฐ€ ์—†๋‹ค๋ฉด(-1์ด ๋ฐ˜ํ™˜๋˜๋ฉด) ํ•ด๋‹น ๋ฌธ์ž๋ฅผ result์— ์ถ”๊ฐ€ํ•œ๋‹ค.

3-2) indexOf ๋ฉ”์„œ๋“œ๋Š” ๊ฒ€์ƒ‰์— ์„ฑ๊ณตํ•˜๋ฉด ํ•ด๋‹น ๋ฌธ์ž๋ฅผ ์ง€๋‹Œ ์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์˜ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ str[i] === i๊ฐ€ ์ผ์น˜ํ•œ๋‹ค๋ฉด, ์ค‘๋ณต์ด ์—†๋Š” ๊ฒฝ์šฐ ์ด๋ฏ€๋กœ ํ•ด๋‹น ๋ฌธ์ž๋ฅผ result์— ์ถ”๊ฐ€ํ•œ๋‹ค.

3-3) includes ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.(true/false๊ฐ’์„ ๋ฐ˜ํ™˜)

 

๋ฌธ์ œํ’€์ด

//๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ๋‹ต(indexOf๊ฐ€ ๊ฒ€์ƒ‰์— ์‹คํŒจํ•˜๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•˜๋Š”๊ฒƒ์„ ํ™œ์šฉ)
function solution(string){
    result = '';
    for(let x of string){
        if(result.indexOf(x) < 0) result += x; // ๊ฒ€์ƒ‰์— ์‹คํŒจํ•˜๋ฉด -1์„ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ
    }
    return result;
}

console.log(solution('gangganggangjoon'));

//indexOf๊ฐ€ ๊ฒ€์ƒ‰์‹œ ๊ฒ€์ƒ‰๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค ๋ฒˆํ˜ธ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์„ฑ์งˆ์ด์šฉ
function solution(s){  
    let answer="";
    //console.log(s.indexOf("K"));
    for(let i=0; i<s.length; i++){
        //console.log(s[i], i, s.indexOf(s[i]));
        if(s.indexOf(s[i])===i) answer+=s[i]; // ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ ์ธ๋ฑ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ
    }
    return answer;
}
console.log(solution("ksekkset"));