코딩 질문이요.

  • #3515633
    코딩 129.***.70.130 1629

    파이썬 문제인데 혹시 아시는분 있나해서 올려봅니다.

    ex ) 1,2,3,4,5 를 입력했을때 K=3이라면

    3,,4,5,1,2가 출력되야되고

    K= 2라면 4,5,1,2,3 이렇게 출력되야 됩니다.
    K= 4 라면 2,3,4,5,1 이런식으로 나와야되는데.

    잘 모르겠습니다. 답글 부탁드려요.

    • asdasd 24.***.217.216

      index가 0에서 시작해서
      my_list = [1, 2, 3, 4, 5] 라고 치면
      k = 0
      my_list[k] 는 1이 될테고 my_list[k+1]는 2가 될겁니다.

      근데 위에 예시 보니까 반대로 해야되니 오른쪽에서 시작하면 됩니다

    • 어허 67.***.112.190

      숙제하시나봐요.

      랭귀지 종류를 떠나서, 리니어 데이타 스트럭쳐의 임의의 지점에서 시작하고 wrap around하는 것, 그리고 limit을 부여하는 것이 기본 아이디어입니다. 로직을 이해한다면 데이타 스트럭쳐를 정하고 임플리멘트 해보세요. 방법은 여러가지가 있고, 데이타 스트럭쳐에 따라서, 랭귀지 피쳐에 따라서도 달라지겠죠.

      일단 모든 엘레멘트를 다 visit해야 하죠? 루프를 쓰는게 좋겠죠? 어디서 시작하고 어디서 멈추느냐, 인덱스 계산은 어떻게 공식으로 일반화할 수 있나 생각해보세요.

    • cm 136.***.110.185

      입력된 배열을 k값 만큼 오른쪽으로 이동시키는 문제인데 뭘 모르겠다는건지 설명이 없네요
      문제가 이해가 안된다는 건지 풀이를 모르겠다는건지 설명을 해주셔야 댓글 다는 분들이 이해가 쉽겠죠?

    • 코와이네 38.***.67.2

      홀리 크랩;;;
      자바 코드 주겠음 알아서 바꾸셈

      // Time Complexity: O(n)
      // Space Complexity: O(n)
      public int[] Get(int[] nums, int k){
      int[] res = new int[nums.length];

      for (int i = 0; i < res.length; i++)
      {
      res[i] = nums[(nums.length – k +1) % nums.length];
      }

      return res;
      }

      엄청난 초보문제

      • CJW 73.***.171.102

        틀리셨습니다.

        res[i] = inputs[(nums.length-K+i) % nums.length];

    • 원래 199.***.103.60

      파이선이라 했다면… 리스트에 입력값 들어있다 가정하고 코드 한줄로 못쓰면 본전도 못건지는 문제임…

    • 원래 199.***.103.60

      data[-K:] + data[:-K]

    • 생각의 재료 72.***.214.148

      보통 알고리즘 문제 풀때, 한개의 답으로만 풀지말고, 여러개 풀수있는거 생각해두면 좋아요.
      위에 문제는 윗분들처럼 새로운 배열에 k랑 % 이용해서 넣어주는것도 있고 (갠적으로 이 방법 선호)

      또 다른 방법은 리버스 함수 작성해서 3번에 거쳐서 배열을 뒤집어 주면됩니다.

      1.전체 리스트 리벌스 (5,4,3,2,1)
      2,입력값 -1 인덱스만큼 좌측 리버스 (4,5),3,2,1 //k = 2라고 가정
      3.입렵값 인덱스 부터 나머지 우측 리버스 4,5,(1,2,3)
      그럼 결과 4,5,1,2,3

    • 원래 66.***.246.79

      현업 종사자로서… 저라면 여기 글쓴분들 다 탈락시킵니다. 이 문제가 무슨 알고리즘이고 나발이고 할 로직도 아니고… 걍 뻔한걸 파이썬에서 얼마나 Pythonic하게 잘 표현하나 확인하는 의도의 문제입니다. -_-