개발후라이
개발후라이
개발후라이
  • 분류 전체보기 (286)
    • Web Front End (75)
      • Javascript & Typescript (26)
      • React (12)
      • Vue (4)
      • Nodejs (1)
      • HTML (6)
      • CSS (7)
      • HTTP (6)
      • 책 - Review (8)
    • TIL (0)
    • Problem Solved (135)
      • 알고리즘 (4)
      • BOJ (67)
      • Programmers (8)
      • HackerRank (33)
      • LeetCode (23)
    • 회고 (4)
      • 오늘의 회고 (16)
      • 주간 회고 (15)
      • 월간 회고 (7)
      • WakaTime (9)
    • Git (3)
    • 기타 (15)
      • 취업 (5)
      • 자격증 (1)

블로그 메뉴

  • GitHub
  • LinkedIn
  • 홈

인기 글

태그

  • 회고
  • 프론트엔드
  • 개발자
  • 노개북
  • 노마드북클럽
  • 오늘의회고
  • JavaScript
  • 자바스크립트
  • TypeScript
  • 릿코드

최근 댓글

최근 글

전체 방문자
오늘
어제

티스토리

hELLO · Designed By 정상우.
개발후라이

개발후라이

Problem Solved/LeetCode

[LeetCode][Javascript] 189번 - Rotate Array

2020. 5. 2. 01:03
반응형

문제

189. Rotate Array

문제 설명

1차원 배열이 전해진 숫자만큼 오른쪽으로 회전하도록 만드는 문제.

이 문제의 풀이에는 크게 두 가지가 있는 것 같다.

  1. 오른쪽에 주어진 개수만큼 분리해서 왼쪽에 붙여 회전된 결과를 만들기
  2. 하나씩 오른쪽에서 떼고 왼쪽에 붙여서 회전하기

이 중 나는 1번으로 풀었다. (2번은 생각을 못 했다)

일단, 오른쪽으로 도는 횟수인 k는 nums의 총 길이를 넘지 않도록 제어해 주어야 한다.
nums의 길이를 넘어가면 undefined로 계산하게 될 것이다.
(2번 방법으로 풀더라도 반복 계산을 줄이기 위해 길이에 관한 계산을 먼저 해 주는 게 좋을 것이다.)
나머지 값을 계산해 k에 다시 저장하고, 0번부터 k를 뺀 개수만큼 splice를 해 따로 배열에 저장한다.
배열에 저장한 값은 반복문으로 남은 원래 배열에 추가한다.

성공 코드

const rotate = (nums, k) => {
    if (nums.length < k) k %= nums.length;
    const spliceArray = nums.splice(0, nums.length-k)
    spliceArray.forEach(el => nums.push(el))
};
반응형
저작자표시 (새창열림)
    'Problem Solved/LeetCode' 카테고리의 다른 글
    • [LeetCode] 350번 문제 - Intersection of Two Arrays II
    • [LeetCode][Javascript] 217번 - Contains Duplicate
    • [LeetCode][javascript] 122번 - Best Time to Buy and Sell Stock II
    • [LeetCode][Javascirpt] 15번 - 3Sum
    개발후라이
    개발후라이
    어제보다 오늘 발전하기 위한 공간 https://github.com/choisohyun

    티스토리툴바