Learning Log/알고리즘

[알고리즘] 자바스크립트 알고리즘 문제 : strs은 단어가 담긴 배열입니다.공통된 시작 단어(prefix)를 반환해주세요. (js)

자척개 2023. 1. 20. 19:17
반응형

Q. strs은 단어가 담긴 배열입니다.
공통된 시작 단어(prefix)를 반환해주세요.

예를 들어
strs = ['start', 'stair', 'step']
return은 'st'

strs = ['start', 'wework', 'today']
return은 ''

 

 

 

A.

function getPrefix(strs) {
    if (strs.length === 0) return ''; 
    
    let prefix = strs[0];
    
    for (let i = 1; i < strs.length; i++) {
        while (strs[i].indexOf(prefix) !== 0) {
            prefix = prefix.substring(0, prefix.length - 1);
        }
    }
    
    return prefix;
}

 

 

 

문제 해결 과정

우선 배열을 스트링으로 변환하고, 각각 단어를 for문으로 돌려서 비교해야 하나?? 했습니다

물론 return을 반환할 때 단어의 순서를 지켜서 반환해야 하기 때문에 단어를 각각 알파벳으로 나눠서 비교해야 하는 건 아닌 거 같은데,,,, 라고 생각했지만 우선 시도해봤습니다

split(",")을 이용해서 우선 나눠보려고 이리저리 시도하다가 한시간이 지났습니다

 

 

 

TIL

str.substring(indexStart[, indexEnd])

반환값 : 기존문자열의 부분 문자열을 반환합니다.

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/String/substring

 

답을 찾아봐도 이해하기 어려운 경우가 많고 아직은 함수도 제대로 이용하지 못하는 거 같아서 어려움이 많네요

프로그래머스에서 알고리즘 공부를 따로 해야겠다고 생각합니다,,,

 

 

 

Resources

https://velog.io/@mm0467/CodeKata05-%EA%B3%B5%ED%86%B5%EB%90%9C-%EC%8B%9C%EC%9E%91-%EB%8B%A8%EC%96%B4prefix%EB%A5%BC-%EB%B0%98%ED%99%98%ED%95%B4%EC%A3%BC%EC%84%B8%EC%9A%94

반응형