본문 바로가기
Algorithm/문제풀이

[Codility] LongestPassword (Easy) by javascript - Exercise 1

by 썸머워즈 2022. 6. 28.
반응형

▷ 문제 : Exercise 1 - LongestPassword (Easy)

 

LongestPassword coding task - Practice Coding - Codility

Given a string containing words, find the longest word that satisfies specific conditions.

app.codility.com

▷ 해결 날짜 : 2022.06.28
▷ 소요 시간 : 20분
▷ 풀이 과정 :

2015 Contest 문제 중에 하나인 LongestPassword 문제이다.

Easy난이도답게 그렇게 어려운 문제는 아니었는데, 아래 조건을 만족하는 가장 긴 패스워드의 길이를 반환해주면 되는 문제였다. 조건은 다음과 같다.

  • it has to contain only alphanumerical characters (a−z, A−Z, 0−9);
  • there should be an even number of letters;
  • there should be an odd number of digits.

대충 해석하면 영문과 숫자만 허용하며, 짝수의 문자여야 하고, 홀수 자릿수여야만 한다 라는 조건이다.

그리고 해당하는 패스워드가 없다면 -1을 반환해주면 되는 문제이다.

 

그래서 그냥 큰 고민없이 해당 조건들을 나열해주기만 했는데, 시간이 20분이나 걸린 건 좀 더 나은 방법이 없을까 고민한 시간이다.

 

▷ 구현

function solution(S) {
  let answer = -1;
  S.split(" ").forEach((password) => {
    if (
      password.length % 2 !== 0 &&
      (password.match(/[a-z]/gi) || "").length % 2 === 0 &&
      /^[a-zA-Z0-9]+$/g.test(password) &&
      answer < password.length
    ) {
      answer = password.length;
    }
  });
  return answer;
}


▷ 복기 :

다시 꾸준히 문제를 풀기 위해 몸풀기 용으로 적당한것같다.

더 나은 풀이가 없나 보고 싶은데 코딜리티는 다른 사람 코드를 보는 방법이 없을까 싶다 있을 거 같은데

반응형


댓글

TOP