벡터의 마지막 n element 출력 (if, tail, for, while 불가)

조회수 638회

아무리 여러번 시도를 해봐도 원하는 아웃풋이 안나와서 질문드립니다.

back <- function(x, n){ 
  min <- min(length(x), n) 
  x[-c((0:(my_length(x) - min)))] 
} 
back(numeric(0), n = 6) 
back(seq(1, 99, by = 2), n = 6) 
back(c("a", "b", "c"), n = 6) 

벡터 x와 숫자 n 이 주어졌을때 if, for 이나 tail()사용 하지 않고 x의 마지막 n개 element를 리턴 할수 있는 함수 알고리즘 있을까요?

n이 length(x)보다 클 경우 x 전체를 출력하고

x가 0 vector일경우에는 numeric(0)이나 character(0)을 출력해야합니다.

저렇게 할 경우에 위에 두개의 테스팅 코드는 맞게 출력을 하는데 길이가 n보다 짧을경우에서 0벡터를 출력해서요..

저런 방식 말고 x[(length(x) - min):length(x)] 도 해봤는데 이럴경우에는 마지막 n개 가 아닌 n+1개를 출력해서요ㅜ

혹시 에러를 고치는 방법이나 다른 방법 알고계신 분 있으면 꼭 알려주세요!!

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)