문제
문자열을 "("
또는 ")"
로 변환하기. 특정 문자가 한 번만 등장할 경우 "("
로, 두 번 이상 등장할 경우 ")"
로 치환하기.
문제 주소: www.codewars.com/kata/54b42f9314d9229fd6000d9c/train/javascript
내 풀이(못 풂)
function duplicateEncode(word){
const words = word.split(""); // 1. 주어지는 단어를 하나씩 분리하기
// 2. 해당 단어가 중복되는지 확인하기
// 3. 중복되지 않으면 문자열에 "("
// 4. 중복되면 문자열에 ")"를 차례로 추가하기
// 5. 최종 결과를 리턴하기
}
duplicateEncode("abbacd");
우수 답안
function duplicateEncode(word){
return word
.toLowerCase()
.split('')
.map( function (a, i, w) {
return w.indexOf(a) == w.lastIndexOf(a) ? '(' : ')'
})
.join('');
}
function duplicateEncode(word){
var unique='';
word = word.toLowerCase();
for(var i=0; i<word.length; i++){
if(word.lastIndexOf(word[i]) == word.indexOf(word[i])){
unique += '(';
}
else{
unique += ')';
}
}
return unique;
}
후기 및 새롭게 배운 것
결국 못 풀었다. map
과 indexOf
, lastIndexOf
에 대해 정리가 필요하다.
'개발 > TIL;' 카테고리의 다른 글
[코드 워즈] 7. RGB To Hex Conversion (0) | 2020.12.26 |
---|---|
[코드 워즈] 6. Vowel Count (0) | 2020.12.21 |
[코드 워즈] 5. Descending Order (0) | 2020.12.20 |