-
항해3주차 자바스크립트 프로그래머스 - 문자열 내 p와 y의 개수항해 프로그래머스 2023. 1. 30. 14:06
처음 풀이
function solution(s){ var answer = 0; let p = 0; let y = 0; for(let i=0, i < s.length;, i++) if (p === y) {return = true}; else if (p != y) {return = false}; else {return = true}; return answer; } //for문 돌리기 //p=y true //s의 p,y를 뭐라표현하더라 //!= false // else = true //삼항연산자를 이럴때 쓰던가
수정 풀이
function solution(s){ var p = 0; var y = 0; var str = s.toUpperCase(); var answer = true; for(var i = 0; i<str.length; i++) { if(str[i] === 'P') p++; else if(str[i] === 'Y') y++; } (p == y) ? answer = true : answer = false; return answer; }
다른 풀이
function solution(s){ var answer = true; // s의 모든 영문을 소문자로 바꿔준다(같은 것을 찾을 때 확실히 하기위해서) let str = s.toLowerCase(); // 소문자로 바꾼 s의 문자열들을 배열로 하나씩 나눠준다. str = [...str]; // 먼저 변수 p,y 에 값을 0으로 선언해준다. let p = 0; let y = 0; // for문으로 i를 str의 총 배열 갯수만큼 증가시키고 str[i]의 값과 "p" 가 일치할 때마다 p를 증가, 같은 방법으로 y와도 일치할 시 y도 증가시켜준다. for(let i=0; i<str.length; i++){ if(str[i] == 'p'){ p++; } else if (str[i] == 'y'){ y++; } } // 그렇게 증가시켜준 값이 들어간 p 와 y 의 수가 같으면 answer에 true를 대입 if(p == y){ answer = true; // 그게 아니면 answer에 false를 대입해준다. } else { answer = false; } return answer; }
function solution(s){ return [...s.toLowerCase()].reduce((acc, cur) => { if(cur ==='p') return acc + 1; else if(cur ==='y') return acc - 1; return acc; }, 0) ? false : true; }
function numPY(s){ let pLength = s.match(new RegExp("p", "ig")).length, yLength = s.match(new RegExp("y", "ig")).length; if( pLength === yLength ){ return true; } else { return false; } }
'항해 프로그래머스' 카테고리의 다른 글
(다시)항해3주차 자바스크립트 프로그래머스 - 이상한 문자 만들기 (0) 2023.01.30 항해3주차 자바스크립트 프로그래머스 - 수박수박수박수박수박수? (0) 2023.01.30 (다시)항해3주차 자바스크립트 프로그래머스 - 내적 (0) 2023.01.30 항해3주차 자바스크립트 프로그래머스 - 나누어 떨어지는 숫자 배열(Sort) (0) 2023.01.30 항해3주차 자바스크립트 프로그래머스 - 2016년 (0) 2023.01.30