https://school.programmers.co.kr/learn/courses/30/lessons/120883
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
배열의 forEach를 활용하여 내부 아이템을 하나씩 확인하는 방식으로 풀었다.
처음 if문에서 아이디를 확인해서 fail인지 바로 확인을 하고 다음 절차로 건너갔다.
그다음 if문에서는 pw가 동일한지 체크하고 결과값을 바꾸는 코드로 만들었다.
But, 처음에는 forEach문 내에서 return을 하였는데 결과값이 반환되지 않았다.
이건 앞으로 좀 알아봐야겠다.
const solution = (id_pw, db) => {
let result = "fail";
db.forEach((v) => {
if (id_pw[0] === v[0]){
if (id_pw[1] === v[1]){
result = "login";
}
else result = "wrong pw";
}
});
return result;
};
console.log(solution(["meosseugi", "1234"],[["rardss", "123"], ["yyoom", "1234"], ["meosseugi", "1234"]]));
console.log(solution(["programmer01", "15789"], [["programmer02", "111111"], ["programmer00", "134"], ["programmer01", "1145"]]));
console.log(solution(["rabbit04", "98761"], [["jaja11", "98761"], ["krong0313", "29440"], ["rabbit00", "111333"]]));
다른 사람의 풀이를 봤는데 Map 객체를 활용하여 문제를 해결했다.
처음에 id, pw를 구조 분해 할당을 하여 id, pw를 나누었다.
그리고 db를 객체로 만들고, 객체에서 id가 있는지 확인하는 삼항 연산자 처리를 하였다.
있으면 get을 통해서 login과 wrong pw를 체크했다.
function solution(id_pw, db) {
const [id, pw] = id_pw;
const map = new Map(db);
return map.has(id) ? (map.get(id) === pw ? 'login' : 'wrong pw') : 'fail';
}
단순 반복문이 아닌 삼항 연산자와 Map객체를 활용하여 이렇게도 풀 수 있구나를 알 수 있는 문제였다
'PS > 프로그래머스' 카테고리의 다른 글
Lv1 숫자 문자열과 영단어 (0) | 2023.12.26 |
---|---|
Lv1 3진법 뒤집기 (0) | 2023.12.21 |
Lv1 문자열 다루기 기본 (0) | 2023.12.21 |
Lv0 OX퀴즈 (0) | 2023.07.17 |
Lv0 특이한 정렬 (0) | 2023.07.13 |