반응형
▷ 문제 : Exercise 1 - LongestPassword (Easy)
▷ 해결 날짜 : 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;
}
▷ 복기 :
다시 꾸준히 문제를 풀기 위해 몸풀기 용으로 적당한것같다.
더 나은 풀이가 없나 보고 싶은데 코딜리티는 다른 사람 코드를 보는 방법이 없을까 싶다 있을 거 같은데
반응형
댓글