상세 컨텐츠

본문 제목

transformFirstAndLast 알고리즘 문제 풀이

Programming Language/JavaScript

by Yongari 2022. 12. 16. 21:14

본문

 

문제

배열을 입력받고 배열의 첫요소와 마지막 요소를 키와 값으로 하는 객체를 만들어서 그 객체를 리턴하는 것이다.

 

입력 인자 : arr이름의 배열

출력 : 객체를 리턴

 

주의사항

  • 빈 배열을 입력 받으면 빈 객체를 리턴한다.
    >> 이 말을 들을 때 나의 경우에는  배열의 크기가 0이면 이라고 해석하고 있다.
    (if arr.length === 0) { return {} }

 

  • 입력으로 받는 배열을 수정하지 않아야합니다.
    >> 이걸 안 읽고 코딩을 하다가 테스트 후 내가 잘못 코딩한 것을 알았다. shift와 pop을 이용해서 간단히 구현하려다가 시간낭비를 했다. 항상 문제는 끝까지 조심히 읽어야한다는 것을 명심해야한다. 

 

입출력 예시

let arr = ['Queen', 'Elizabeth', 'Of Hearts', 'Beyonce'];
let output = transformFirstAndLast(arr);
console.log(output); // --> { Queen : 'Beyonce' }

arr = ['Kevin', 'Bacon', 'Love', 'Hart', 'Costner', 'Spacey'];
output = transformFirstAndLast(arr);
console.log(output); // --> { Kevin : 'Spacey' }

 

 

풀이 코드 설명

function transformFirstAndLast(arr) {
  //정답으로 제출할 배열 생성
  let obj = {};
  // 빈 배열이면 빈 객체 리턴
  if (arr.length === 0) {
    return {};
  } else {
    //배열의 첫 요소와 마지막 요소를 지정
    const firstStr = arr[0];
    const lastStr = arr[arr.length - 1];
    //위의 두 요소로 객체 생성
    obj[firstStr] = lastStr;
    //정답인 객체를 리턴해준다.
    return obj;
  }
}


// 사실 엄청 간단했었다. 내 풀이보다 훨씬짧다....
// 다른 풀이
// 배열 생성
// let result = {};
// 배열의 길이가 0이상일경우
// if (arr.length > 0) {
// 정답 배열의 키와 밸류를 지정해서 끝
//   result[arr[0]] = arr[arr.length - 1];
// }
// 배열 리턴..
// return result;

 

자바스크립트 실행방법

nodejs는 서버에서 자바스크립트를 실행할 수 있는 백엔드 프레임워크다. 

node ./test.js

 

오늘도 나의 무지함을 느낀다. 
항상 코딩하고나면 나의 코드는 부끄럽구만.

'Programming Language > JavaScript' 카테고리의 다른 글

알고리즘 문제풀이 - powerOfTwo  (0) 2022.12.19
computeWhenDouble 알고리즘 문제 풀이  (0) 2022.12.16
[DFS] 바코드  (0) 2022.12.14
[DFS / BFS] 연결된 정점들  (0) 2022.12.14
[Graph] 인접 행렬 길찾기  (0) 2022.12.14

관련글 더보기