Code-Kata 문제풀이 (3~4차)

DY·2021년 8월 22일
0
post-thumbnail

문제3️⃣

String 형인 str 인자에서 중복되지 않은 알파벳으로 이루어진 제일 긴 단어의 길이를 반환해주세요.

  • str: 텍스트, return: 중복되지 않은 알파벳 길이 (숫자 반환)


    예를 들어, str = "abcabcabc" return 은 3 => 'abc' 가 제일 길기 때문
    str = "aaaaa" return 은 1 => 'a' 가 제일 길기 때문
    str = "sttrg" return 은 3 => 'trg' 가 제일 길기 때문

코드카타 문제 중에 가장 어려웠던 문제였다. 문제를 이해하는것 자체도 쉽지 않았고 주어진 시간내에도 답을 낼 수도 없었다. 구글링을 통해 여러가지 답안 중에 좋다고 생각했던 답안을 첨부한다.

  • 주어진 문자열을 중복값을 비교하며, 중복값이 나오기 전까지 가장 긴 배열중복값이 나오고 난 이후 중복값을 제거한 배열을 추출하여 그 중에 가장 긴 배열을 답으로 return 한다.

문제4️⃣

숫자인 num을 인자로 넘겨주면, 뒤집은 모양이 num과 똑같은지 여부를 반환해주세요.

  • num: 숫자 return: true or false (뒤집은 모양이 num와 똑같은지 여부)


    예를 들어, num = 123 return false => 뒤집은 모양이 321 이기 때문
    num = 1221 return true => 뒤집은 모양이 1221 이기 때문
    num = -121 return false => 뒤집은 모양이 121- 이기 때문
    num = 10 return false => 뒤집은 모양이 01 이기 때문

🤔 생각했던 답안

  • 코드카타 2번문제와 비슷했다.
  • 숫자를 뒤집어도 동일한 숫자가 나오는지 여부를 확인하는 것이나, 음수를 뒤집을때 -기호가 숫자 맨끝에 위치하는 것(숫자가 아닌 형태)도 동일 여부를 판단하는 대상이 되므로, 오히려 스트링형태로 비교하는 것이 좋다고 판단하였다.
  1. 인수를 string화 시킨뒤 split함수로 숫자 각각을 구성하는 배열로 만든 뒤, reverse로 뒤집기
  2. join함수를 통해 거꾸로 뒤집힌 배열을 문자로 반환 후 동일여부 비교
  • 답안을 간결하게 하기 위하여 적용할 메소드들을 나열하였다. 이와 같은 방식으로 식을 작성할 경우, 메소드 나열 후 console.log로 인수가 변하는 것을 확인하기 어렵다.(메소드를 적용한 값은 오직 return될 뿐이다.) 따라서 메소드 하나하나 적용할때마다 console.log로 변화된 값을 확인해줘야 한다.

코드카타 시작 후 처음으로 주어진 시간내 문제를 만족하는 답을 찾을 수 있었다. 비록 쉬운문제였지만 풀고나서 기분을 정말 좋았다. 앞으로의 문제도 결과보다는 생각하는 과정을 중시하며 치열하게 고민해보자.

profile
본질은 개발자 그 자체가 아니라, 개발을 임하고 해내는 방식에서 드러난다.

0개의 댓글