프로그래머스 JS Level 1. 문자열 내 p와 y의 개수 ~ 정수 내림차순으로 배치하기
Level 1. 문자열 내 p와 y의 개수
입력받은 문자열을 한 글자씩 쪼개서 배열로 만들고, for of를 활용해 배열 안의 값들이 p, P, y, Y인지 비교했다.
p, P일 경우 strP에 1을 더하고 y, Y일 경우 strY에 1을 더해서 최종적으로 strP와 strY가 같지 않으면 false를 리턴했다.
그리고 다른 사람 풀이를 봤다.
function numPY(s) {
return s.toUpperCase(). split("P"). length === s.toUpperCase(). split("Y"). length;
}
입력받은 문자열을 대문자로 만들고, P와 Y로 쪼개서 길이를 비교했다.
정말 깔끔한 풀이다.
나도 코딩을 미니멀하게 바꾸고 속도를 개선하는 데 신경 써봐야겠다.
Level 1. 하샤드 수
입력받은 정수 x를 문자로 바꿔 split으로 한 글자씩 쪼개서 배열로 만들었다.
reduce를 통해 배열의 각 값을 더하고, 더한 값으로 입력받은 정수 x를 %로 연산해 값이 0이 아니면 false를 리턴했다.
Level 1. 정수 내림차순으로 배치하기
입력받은 정수 n을 문자로 만들고 split으로 한 글자씩 쪼깨서 배열로 만들었다.
map함수를 통해 배열의 각 문자 값들을 숫자로 바꾸고, sort에 함수를 활용해 내림차순으로 정렬했다.
그리고 for of를 사용해 배열의 숫자들을 문자로 바꿔서 문자열로 합쳤다.
다시 answer에 합친 문자열을 숫자로 바꿔 대입하고 리턴했다.
그리고 다른 사람의 풀이를 봤다.
function solution(n) {
let newN = n + "";
let newArr = newN
. split("")
. sort()
. reverse()
. join("");
return +newArr;
}
String 함수를 쓰지 않고 숫자에 공백을 더해 문자열로 만들었다.
split, sort, reverse를 깔끔하게 사용하고 거기에 join으로 배열을 하나의 문자열로 만들었다.
마지막에 +를 붙여 숫자로 리턴해주는 센스까지 대단한 거 같다.