[Programmers] 카운트 다운

Jinny·2025년 1월 10일
0
  • 날짜 / 주차-누적 횟수: 2025.01.08(수) / 2주차-14회
  • 사이트 이름: 프로그래머스
  • 사용 언어: 자바스크립트
  • 문제 고유 번호 및 레벨: 181809 / Lev 0
  • 나의 풀이 방법:
    function solution(my_string) {
        // 어떤 문자열에 대해서 접미사: 특정 인덱스부터 시작하는 문자열
        // my_string: 문자열
        // my_string의 모든 접미사를 사전순으로 정렬한 문자열 배열 return 
        
        let result = [];
        
        for (let i = 0; i < my_string.length; i++) {
            result.push(my_string.slice(my_string.length - 1 - i))
        }
        
        return result.sort();
    }
    • 일반 for문 사용
    • my_string문자열에 slice로 잘라서 넣는다.
      • slice 첫 번째 인자: 시작 인덱스 포함 O
        • my_string.length는 전체 길이다 보니 0부터 포함하지 않는다. 그러므로 -1을 해준다.
      • slice 두 번째 인자: 종료 인덱스 포함 X
    • sort(): sort 안에 빈 값이면, 배열의 element들은 문자열로 취급되어, 유니코드 값 순서대로 정렬된다.
  • 최적 풀이 방법:
    
    function solution(my_string) {
      return Array.from(my_string)
        .map((_, i) => my_string.substring(i))
        .sort();
    }
    • Array.from(): my_string 문자열을 얕은 배열로 복사한다.
    • map()으로 my_string문자열에 substring으로 자른다.
  • 배운 개념:
    • Array.from(): 얕게 복사된 새로운 배열을 생성한다.
    • substring vs slice
      • 공통점
        • 문자열 원본을 그대로 보존한다.
        • 리턴값은 잘라진 문자열이다.
        • end값은 생략 가능하다.
        • start와 end에 같은 수를 넣을 경우, 빈 문자열을 리턴한다.
      • 차이점
        • start값이 end값 보다 클 때,
          • substring
            • str.substring(1, 10) → str.substring(10, 1) 자동 변경
          • slice
            • 빈값
        • start, end에 음수 값을 전달할 경우
          • substring
            • start, end 상관없이 한개라도 음수면, 시작 위치가 0으로 설정된다.
          • slice
            • start 값이 음수라면? “”
            • end 값이 음수라면? 뒤에서 세어 그 앞까지 센다.
profile
세상을 이롭게 하는 프론트엔드 개발자 Jinny

0개의 댓글

관련 채용 정보