본문 바로가기

자료구조알고리즘/코드스테이츠 Coplit

01_transformFirstAndLast

[ 문제 ]

입출력 예시로 문제를 설명하자면, 입력받은 배열 중 0번째 요소가 객체의 key, 마지막 요소가 객체의 value로 만들어 그 객체를 반환해야한다.

그리고 빈 배열을 입력받은 경우, 빈 객체를 반환해야한다.

 

[ 풀이 ]

내가 작성한 로직은 아래와 같다.

1/ 먼저 빈 객체를 변수에 할당한다.

2/ 만약 배열의 길이가 0이라면(즉, 빈 배열이라면) 빈 객체를 그대로 반환한다.

3/ 빈 배열이 아니라면, 대괄호 표기법(bracket notation)을 사용하여 동적으로 생성시킨다.

4/ 객체를 할당한 변수를 반환한다.

 

function transformFirstAndLast(arr) {
  let obj = {}; //변수를 선언하고, 빈 객체를 할당한다.
  if(arr.length === 0){ //만약 arr가 빈 배열이라면 그대로 빈 객체를 반환한다.
    return obj;
  }
  let key = arr[0]; //배열의 첫번째 요소를 key라는 변수에 할당한다.
  obj[key] = arr[arr.length-1]; //obj라는 빈 객체에 key는 arr[0], value는 arr[arr.length-1]를 추가한다.
  return obj; //객체 obj를 반환한다.
}

 

** 여기서 주의해야 할 부분!!

객체의 프로퍼티에 접근하는 방법은 2가지가 있다.

1. 마침표 표기법(Dot notation)

만약 obj[key]대신 obj.key = arr[arr.length-1]를 사용했다면,

"key"라는 글자 자체가 키값이 된다.

즉, obj = {key : ...} 이렇게 "key"글자 그대로 들어가게 된다.

 

2. 대괄호 표기법(Bracket notation)

대괄호 표기법에서는 프로퍼티 키를 반드시 따옴표를 감싼 문자열이어야 한다.

하지만 위에서는 왜 key그대로, "" 따옴표로 감싸지 않았을까?

 

--> 그건바로 key가 변수이기 때문이다!

동적으로 변하는 변수일 때는 반드시 "" 따옴표 없이 사용해야 한다!

 

 

 

[ 레퍼런스 ]

문제를 다 풀고 레퍼런스를 보는 것도 도움이 많이 되는 것 같다.

이번에도 테스트 통과 후 레퍼런스를 보았다.

나는 9줄이나 썼고, return obj;도 중복으로 사용했는데 이렇게 간단하게 코드를 짤 수도 있구나..

많이 공부해야지..!

나도 이렇게 깔끔한 코드를 쓸 수 있도록 더더욱 노력해야겠다!

'자료구조알고리즘 > 코드스테이츠 Coplit' 카테고리의 다른 글

06_letterCapitalize  (0) 2022.02.09
05_firstReverse  (0) 2022.02.09
04_firstCharacter  (0) 2022.02.07
03_powerOfTwo  (0) 2022.02.05
02_computeWhenDouble  (0) 2022.02.04