Coding Test/프로그래머스 Lv.0

배열 안의 문자열 정리하기 (자동정렬sort, replace, 배열변경, 배열삭제)

sangwoo_rhie 2023. 5. 26. 16:14


function solution (strings, n){
    var answer = [];
    for(var i = 0; i < strings.length; i++) {
        strings[i] = strings[i][n] + strings[i];
    }
    console.log(strings);
    return answer;
}
solution (["sun", "bed", "car"], 1);

 

매개변수에 문자열 strings와 n 넣어줌.

문자열이므로 var answer = [ ]; (숫자열은 var answer = 0;)

for문 중괄호

strings[ i ] = strings[ i ][ n ] + strings[ i ];  예를들어 srings[i]가 car 이고 n이 1일 경우, acar

strings[ i ] = car
strings[ i ][ n ] = a
strings[ i ] = car

strings[ i ] = strings[ i ][ n ] + strings[ i ] = acar

 

1 string 문자열의 가장 앞글자를 붙인 배열열 만들기 (for문)
n은 인덱스의 n번째 글자. strings[i][n]은 해당 문자열의 n번째 글자 (0, 1, 2, 3...)

 

solution (["sun", "bed", "car"], 1);   이렇게 하면 각 배열의 인덱스 1번째를 앞에 추가한것이므로

[ 'usun', 'ebed', 'acar' ] 이렇게 나옴.

 

여기서 sort입력. string.sort();  (문자 오름차순, abc순)

function solution (strings, n){
    var answer = [];
    for(var i = 0; i < strings.length; i++) {
        strings[i] = strings[i][n] + strings[i];
    }
    strings.sort();
    console.log(strings);
    return answer;
}
solution (["sun", "bed", "car"], 1);

// [ 'acar', 'ebed', 'usun' ]

 

 

해석 :

1 첫번째 for문 : 앞글자에 n번째 인덱스를 추가

 

예를들어 n이 1이면

[ 'sun', 'bed', 'car' ] -> [ 'usun', 'ebed', 'acar' ]

 

 

2 string.sort( )로 문자 오름차순 만듦. abc순

 

[ 'usun', 'ebed', 'acar' ] -> [ 'acar', 'ebed', 'usun' ]

 

 

3 두번째 for문 : strings의 첫번째 인자를 없앰. 여기서 j를 쓴건 위와 헷갈릴까봐 문자만 바꿔쓴것.

.replace("string[ j] [ 0 ]" , " " ); 앞글자를 "" 빈칸으로만들어라. (없애라)

 

 [ 'acar', 'ebed', 'usun' ] ->  'car', 'bed', 'sun' ]

function solution(strings, n) {
    var answer = [];

    for (var i = 0; i < strings.length; i++) {
      strings[i] = strings[i][n] + strings[i];
    }

    strings.sort();
    
    for(let j = 0; j < strings.length; j ++) {
      strings[j] = strings[j].replace(strings[j][0],"");
    }
    console.log(strings);
    return answer;
}
solution (["sun", "bed", "car"], 1);

//[ 'car', 'bed', 'sun' ]