본문 바로가기
코딩테스트/LeetCode

2619. Array Prototype Last 문제 소개, 풀이 과정 및 코드 리팩토링

by 코드스니펫 2024. 3. 13.
반응형

2619. Array Prototype Last 문제 소개, 풀이 과정 및 코드 리팩토링

 

leetcode logo

 

자바스크립트의 배열은 매우 강력한 데이터 구조 중 하나입니다. 하지만 때때로 우리는 배열의 마지막 요소에 쉽게 접근하고 싶어 할 때가 있습니다. 표준 배열 메서드만으로는 이 기능이 직관적이지 않을 수 있기에, 배열의 마지막 요소를 쉽게 얻을 수 있는 .last() 메서드를 구현하는 방법에 대해 알아보겠습니다. 이 글을 통해 자바스크립트의 프로토타입을 활용한 강력한 확장성에 대해서도 이해할 수 있을 것입니다.

 

 

2619. Array Prototype Last

 

 

문제 소개

배열에 .last() 메서드를 추가하여, 이 메서드를 호출할 때마다 배열의 마지막 요소를 반환하도록 하는 기능을 구현해야 합니다. 배열이 비어있다면 -1을 반환해야 합니다.

 

문제 바로가기 ▽

https://leetcode.com/problems/array-prototype-last/

 

 

필자의 해결방법

Array.prototype.last = function() {
    if (this.length === 0) return -1;
    return this[this.length - 1];
};

 

코드 원리

프로토타입 확장: Array.prototype에 메서드를 추가함으로써, 모든 배열 인스턴스에서 해당 메서드를 사용할 수 있게 됩니다.

 

this 키워드: 현재 배열 인스턴스에 대한 참조입니다. this.length는 호출한 배열의 길이를 나타냅니다.

 

조건문: 배열이 비어있는 경우 (this.length === 0), -1을 반환합니다.

 

배열 접근: 배열의 마지막 요소에 접근하기 위해 this[this.length - 1]을 사용합니다.

 

 

개선할 수 있는 풀이 방법

위 코드는 이미 매우 효율적으로 작성되었습니다. 하지만 코드의 가독성을 높이기 위해, 조건문을 사용하지 않고 삼항 연산자를 사용하는 방법도 고려할 수 있습니다.

 

Array.prototype.last = function() {
    return this.length ? this[this.length - 1] : -1;
};

 


 

끝으로

.last() 메서드를 배열에 추가하는 것은 자바스크립트의 프로토타입 체계를 활용하는 좋은 예시입니다. 이를 통해 우리는 기존 자바스크립트 객체에 사용자 정의 기능을 추가할 수 있는 강력한 능력을 가질 수 있습니다.

 

이 글을 통해 배운 내용을 실제 프로젝트에 적용해 보시길 바라며, 자바스크립트의 유연성과 확장성을 깊이 이해하는 계기가 되었기를 희망합니다. 프로그래밍은 끊임없는 학습과 창의적인 해결 방법을 통해 더욱 흥미로워집니다.

 

▼ 30초 더 투자하면 얻게 되는 정보! ▼

 

 

코딩테스트 해시(hash) 문제 - 폰켓몬 풀이 과정 및 리팩토링

코딩테스트 해시(hash) 문제 - 폰켓몬 해결 방법 및 리팩토링 알고리즘 문제 해결은 프로그래밍 역량을 키우는 데 있어 필수적인 과정입니다. 특히, 다양한 데이터를 효율적으로 관리하고 처리해

lemonlog.tistory.com

 

 

자료구조 선형구조 스택(Stack) 개념, 작동원리, 실생활 예시

자료구조 선형구조 스택(Stack) 개념, 작동원리, 실생활 예시 데이터 구조는 컴퓨터 과학에서 데이터를 효율적으로 저장, 관리, 처리하기 위한 구조의 하나입니다. 이번 글에서는 데이터 구조의

lemonlog.tistory.com