1. ๋ฌธ์
N๊ฐ์ ๋ฌธ์์ด์ด ์ ๋ ฅ๋๋ฉด ์ค๋ณต๋ ๋ฌธ์์ด์ ์ ๊ฑฐํ๊ณ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์. ์ถ๋ ฅํ๋ ๋ฌธ์์ด์ ์๋์ ์ ๋ ฅ์์๋ฅผ ์ ์งํฉ๋๋ค.
์ ๋ ฅ์์ |
good
time
good
time
student
์ถ๋ ฅ์์ |
good
time
student
2. ๋ฌธ์ ํ์ด
์ค๋ณต ๋ฌธ์ ์ ๊ฑฐ๊ฐ String.indexOf()๋ฅผ ์ฌ์ฉํ๋ค๋ฉด,
์ค๋ณต ๋จ์ด ์ ๊ฑฐ๋ Array.indexOf()๋ฅผ ์ฌ์ฉํ๋ ๋ฌธ์ ์ด๋ค.
function solution(str){
let answer = [];
for(let i =; i < str.length; i++){
if(str.indexOf(str[i] === i) answer += str[i];
}
return answer;
}
let str = ["good", "time", "good", "time", "student"];
console.log(solution(str));
์ฒ์์๋ ์ด๋ ๊ฒ๋ง ํด์ ๊ฐ์ ์ ๋๋ก ๋์์ง๋ง ๋ฐฐ์ด๋ก ๋์ค์ง ์์๋ค.
Array.filter() ๋ฉ์๋ ์ฌ์ฉํด์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๋ค๋ง ๋ฐ์์ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ค์ด์ผํ๋ค.
filter() ๋ฉ์๋๋ ์ฝ๋ฐฑํจ์๋ฅผ ์ธ์๋ก ๋ฐ๋๋ฐ, ์ฝ๋ฐฑํจ์๋ ์ธ์๋ก value, index, array ์์๋๋ก ๋ฐ๋๋ค.
function solution(str){
let answer;
anwser = str.filter((value, i) => {
// filter์ ์ฝ๋ฐฑํจ์๋ ๋งค๊ฐ๋ณ์๋ก ๊ฐ, ์ธ๋ฑ์ค, ๋ฐฐ์ด ์์๋๋ก ๋ฐ๋๋ค. ๋ฐ๋ก ๋ณ์์ง์ ์ ์ํด์ค๋ ๋๋ค.
if(str.indexOf(value) === i) return value;
// ๊ฐ์ ์ฒซ๋ฒ์งธ ์ธ๋ฑ์ค ๋ฒํธ๊ฐ ์ค์ ์ธ๋ฑ์ค ๋ฒํธ์ ๊ฐ์์ง ํ์ธํ๊ณ ๋ง์ผ๋ฉด ๊ฐ ๋ฆฌํดํ๋ค.
});
return answer;
}
let str = ["good", "time", "good", "time", "student"];
console.log(solution(str));
3. ์ฌ์ฉํ ๊ฐ๋
String.indexOf()
๋ฌธ์์ด์์ ์ฃผ์ด์ง ๊ฐ๊ณผ ์ผ์นํ๋ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ
Array.indexOf()
๋ฐฐ์ด์์ ์ฃผ์ด์ง ๊ฐ๊ณผ ์ผ์นํ๋ ์ฒซ ๋ฒ์งธ ์ธ๋ฑ์ค๋ฅผ ๋ฐํ
Array.filter(๊ฐ, ์ธ๋ฑ์ค, ์๋๋ฐฐ์ด)
์ฝ๋ฐฑํจ์์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ์์๋ง ๋ฐ์์ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ ๋ค.
๋ฐฐ์ด ๋ด ๊ฐ ์์์ ์ฝ๋ฐฑํจ์๋ฅผ ํธ์ถ์์ ๋ฆฌํด๊ฐ์ด true์ธ ์ ๋ค๋ก ์๋ก์ด ๋ฐฐ์ด ๋ง๋ ๋ค. false์ด๋ฉด ๋ฒ๋ฆฐ๋ค.
// ํจํด
let result = students.filter((student) => student.enrolled);
// ํ์ดํ ํจ์๋ก ๋ฐฐ์ด student์ค์ ๋ฑ๋ก๋ ์ ๋ค๋ง ๋ฝ์์ ์๋ก์ด ๋ฐฐ์ด์ ๋ง๋ ๋ค.
'๐กAlgorithm > ๋ฌธ์ ํ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
JS์๊ณ ๋ฆฌ์ฆ | ๋ณด์ด๋ ํ์ (0) | 2021.04.25 |
---|---|
JS ์๊ณ ๋ฆฌ์ฆ | ํฐ ์ ์ถ๋ ฅํ๊ธฐ (0) | 2021.04.25 |
JS์๊ณ ๋ฆฌ์ฆ | ์ค๋ณต๋ฌธ์์ ๊ฑฐ (0) | 2021.04.23 |
JS์๊ณ ๋ฆฌ์ฆ | ๊ฐ์ด๋ฐ ๋ฌธ์ ์ถ๋ ฅ (0) | 2021.04.23 |
JS์๊ณ ๋ฆฌ์ฆ | ๊ฐ์ฅ ๊ธด ๋ฌธ์์ด (0) | 2021.04.19 |