ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Programmers] JavaScript 알고리즘 | Lv.0 문자열 뒤집기
    ► JS Algorithm/Programmers 2024. 7. 27. 13:11
    반응형

    🔒 문제 설명

    문자열 my_string 정수 s, e 매개변수로 주어질 , my_string에서 인덱스 s부터 인덱스 e까지를 뒤집은 문자열을 return 하는 solution 함수를 작성해 주세요.


    🔒 제한사항  

    • my_string은 숫자와 알파벳으로만 이루어져 있습니다.
    • 1 ≤ my_string의 길이 ≤ 1,000
    • 0 ≤ s ≤ e < my_string 길이

    🔒 입출력 예

    my_string s e result
    "Progra21Sremm3" 6 12 "ProgrammerS123"
    "Stanley1yelnatS" 4 10 "Stanley1yelnatS"

    🔒 입출력 예 설명

    입출력 예 #1

    • 예제 1번의 my_string에서 인덱스 6부터 인덱스 12까지를 뒤집은 문자열은 "ProgrammerS123"이므로 "ProgrammerS123"를 return 합니다.

    입출력 예 #2

    • 예제 2번의 my_string에서 인덱스 4부터 인덱스 10까지를 뒤집으면 원래 문자열과 같은 "Stanley1yelnatS"이므로 "Stanley1yelnatS" return 합니다.

     

    🔐 solution of mine

    String.prototype.slice()

    Array.prototype.reverse()

    Array.prototype.splice()

    Array.prototype.flat()

    Array.prototype.join()

    function solution(my_string, s, e) {
      const answer = [...my_string];
      const sliced = my_string.slice(s, e + 1);
      const reversed = [...sliced].reverse();
      const spliced = answer.splice(s, sliced.length, reversed);
    
      return console.log(answer.flat().join(""));
    }
    
    solution("Progra21Sremm3", 6, 12); //output: "ProgrammerS123"
    solution("Stanley1yelnatS", 4, 10); //output: "Stanley1yelnatS"
    solution("00000", 0, 1); //output: "00000" // 함정문제

     

    처음에는 split()으로 풀었다가, 함정문제때문에 17번에서 계속 오류가 났었다. 뉴뉴


     

    🔐 solution of others

    String.prototype.substring()

    Array.prototype.reverse()

    Array.prototype.join()

    String.prototype.replace()

    function solution(my_string, s, e) {
      const substringed = my_string.substring(s, e + 1); //output: 21Sremm
      const reversed = [...substringed].reverse().join(""); //output: mmerS12
    
      return console.log(my_string.replace(substringed, reversed));
    }
    
    solution("Progra21Sremm3", 6, 12); //output: "ProgrammerS123"
    solution("Stanley1yelnatS", 4, 10); //output: "Stanley1yelnatS"
    solution("00000", 0, 1); //output: "00000" // 함정문제

     

    🔐 solution of others

    Array.from()

    Array.prototype.slice()

    Array.prototype.reverse()

    Array.prototype.splice()

    Array.prototype.join()

     

    function solution(my_string, s, e) {
      const arr = Array.from(my_string);
      const sliced = arr.slice(s, e + 1);
      sliced.reverse();
      const spliced = arr.splice(s, e - s + 1, ...sliced);
    
      return console.log(arr.join(""));
    }
    
    solution("Progra21Sremm3", 6, 12); //output: "ProgrammerS123"
    solution("Stanley1yelnatS", 4, 10); //output: "Stanley1yelnatS"
    solution("00000", 0, 1); //output: "00000" // 함정문제

     

    🔐 solution of others

    Set

    Array.prototype.filter()

    Set.prototype.has()

    Array.prototype.join()

    function solution(my_string, s, e) {
      return console.log(
        my_string.slice(0, s) +
          my_string
            .slice(s, e + 1)
            .split("")
            .reverse()
            .join("") +
          my_string.slice(e + 1)
      );
    }
    
    solution("Progra21Sremm3", 6, 12); //output: "ProgrammerS123"
    solution("Stanley1yelnatS", 4, 10); //output: "Stanley1yelnatS"
    solution("00000", 0, 1); //output: "00000" // 함정문제

     


     

    반응형
Designed by Tistory.