-
문자열 내 p와 y의 개수 (문자열분할split문, filter문)Coding Test/프로그래머스 Lv.0 2023. 5. 23. 21:13
https://school.programmers.co.kr/learn/courses/30/lessons/12916
문자열 abcd를 한 글자 한 글자 분할 시 let arr = 매개변수.split("")
대문자와 소문자가 섞여있는 문자열 s가 주어집니다.
s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return라는 solution를 완성하세요.
'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다.
단 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다.
예를들어 s가 "pPoooyY"면 true를 return하고 "Pyy"라면 false를 return합니다.
<조건>
1. 대문자와 소문자가 섞여있는 문자열 s
2. 문자열 s에서 'p'의 개수와 'y'의 개수 비교
3. p의 개수 = y의 개수 : return Ture
4. p의 개수 != y의 개수 : return False
5. Return True : 'p', 'y' 모두 하나도 없는 경우
6. 개수비교 : 대소문자 구분X
7. 제한사항1. s.length =< 50
8. 제한사항2. s는 알파벳!= : 같지 않다.
= 는 대입해주는 의미. 같다는 뜻이 아니라 대입한다는 의미다.
== 안에 있는게 똑같다. 3 == '3' (숫자열, 문자열 but 3)
=== 안에 있는것도 똑같고, 형태도 똑같다. 3 === 3 (숫자열, 숫자열)예를들어
s가 "pPoooyY"면 true를 return하고 (p의 개수 2개 = y의 개수 2개이므로 true)
"Pyy"라면 false를 return한다. (p의 개수 != y의 개수이므로 false)
function solution (s) {
s = 'pPoooyY'
array = ['p', 'P', 'o', 'o', 'o', 'y', 'Y']
p 와 P만 요소로 갖는 array를 만들어서 array.length를 출력한다.function solution (s) {
let arr = s.split("")
let str6 = "apple, banana, kiwi";let result02 = str6.split(","); -> split은 문자열 분할, 콤마를 기준으로 문자를 분할한다.console.log(result02); 즉 ['apple', 'banana', 'kiwi']위에서 let arr = s.split("") -> 쌍따옴표 안에 아무것도 없으면 그냥 문자 하나하나를 분할한다.- 03(데이터타입 문자).js 참고 (문자열 분할 split)
- 17(배열2).js 참고. 필터링된 값을 추출하는 filter 메소드.
- 06(연산자).js 참고. (논리합 연산자 (||) : 두 값중 하나라도 true인 경우 true 반환)
문자열에서의 소문자p와 대문자P를 포함하는 문자열 arrayP
let arrayP = s.filter(funtion(item)) {
return item === 'p' || item === 'P'}
문자열에서의 소문자y와 대문자Y를 포함하는 문자열 arrayY
let arrayY = s.filter(funtion(item)) {
return item === 'y' || item === 'Y'}
위의 <조건>에서
True를 return해야 하는 경우
1. p의 개수 = y의 개수인 경우
2. 문자열에 'p', 'y' 모두 하나도 없는 경우
-> 조건이 두개이므로, if ((조건1) || (조건2))로 묶는다.
False를 return해야 하는 경우
1. p의 개수 != y의 개수 인 경우
근데, p의 개수 = y의 개수인 경우가 아닌 경우는 p의 개수 != y의 개수 인 경우이므로
else if문을 써서 False를 return해야 하는 조건을 따로 쓸 필요 없이 아래처럼 바로 else문을 써도 된다.
if ((true조건1) || (true조건2)) {
return true
} else {return false
}
1. p의 개수 = y의 개수인 경우 ( arrayp.length === array.length)
2. 문자열에 'p', 'y' 모두 하나도 없는 경우 (arrayp.length ==0 && arrayy.length ==0)
따라서 답은 아래와 같다.
function solution(s) {let arr = s.split("")let arrayp = arr.filter(function (item) {return item === 'p' || item === 'P'})let arrayy = arr.filter(function (item) {return item === 'y' || item === 'Y'})
if ((arrayp.length === arrayy.length) ||(arrayp.length == 0 && arrayy.length == 0)) {return true}else {return false}}function solution (s) { let arr = s.split("") let arrayp = arr.filter(function(item){ return item === 'p' || item === 'P' }) let arrayy = arr.filter(function(item){ return item === 'y'|| item === 'Y' }) if(( arrayp.length === arrayy.length) || (arrayp.length ==0 && arrayy.length ==0 )){ return true } else { return false } }
'Coding Test > 프로그래머스 Lv.0' 카테고리의 다른 글
음양 더하기 (for문, 삼항연산자or if문, 배열의 더하고 빼기) (0) 2023.05.27 두 수의 나눗셈 (몫 구하기) Math.trunc 소수점 제거 함수 (0) 2023.05.26 배열 안의 문자열 정리하기 (자동정렬sort, replace, 배열변경, 배열삭제) (0) 2023.05.26 문자열 내 p와 y의 개수 (filter문, split으로 문자 나누기) (0) 2023.05.26 음양 더하기 (불리언, 배열의 나열 더하기/빼기, for, if문) (0) 2023.05.24