풀이
function solution(arr) { let answer = 0; if(arr.length >1){ answer = arr.filter((el) => el !== Math.min(...arr)) }else if(arr.length = 1){ answer = [-1] } return answer }
📝 풀이 설명
- 배열의 길이에 따른 조건문 작성
Math.min(...arr)
배열에서 가장 작은 값을 불러온다. ...arr로 작성한 이유는 배열을 벗기기 위함- 그렇게 찾은 가장 작은 숫자를 배열에서
filter
를 통해 가장 작은 값만 삭제하고 배열을 입력
풀이
function solution(n) { answer = -1; for(let i=1; i<=n; i++){ if(n/i === i){ answer = (i+1)*(i+1) break } } return answer }
📝 풀이 설명
- 우선 반복문을 사용해 주어진 n값 만큼 돌린다.
- 반복문이 도는중 n값을 나눈 값과 결과 값이 같을때 (121/11=11)를 찾는다.
- 그렇게 찾은 값에 1을 더해 제곱한다.
- 그런데 여기서
break
를 안하며 정답을 찾아도 안 멈추고 값을 찾는다. 시간 초과로 실패!!- answer를 -1로 설정한 이유는 정답 이외의 값들은 모두 -1이기 때문이다.
Math.sqrt()
메서드는 숫자의 제곱근을 반환한다.
풀이
function solution(s){ let answer = 0; let a =s.toUpperCase() let b = a.split('') let ppp = b.filter((el) => el === 'P') let yyy = b.filter((el) => el === 'Y') if(ppp.length === yyy.length){ answer = true }else{ answer = false } return answer }
📝 풀이 설명
- 주어진 문자열을
toUpperCase()
을 사용해 모두 대문자로 통일한다.- 통일된 문자열을
split('')
을 사용해 배열로 만든다.filter((el)
을 사용해 P값을 PPP 배열에 따로 저장 YYY도 마찬가지- PPP배열과 YYY배열의 길이를 비교해서 같으면 true 반환 아니면 false 반환
다른 풀이
function numPY(s){ //함수를 완성하세요 return s.toUpperCase().split("P").length === s.toUpperCase().split("Y").length; } // 아래는 테스트로 출력해 보기 위한 코드입니다. console.log( numPY("pPoooyY") ) console.log( numPY("Pyy") )
📝 풀이 설명
- 대문자로 통일 시키고 그 값을
s.toUpperCase().split("P")
하면[ '', '', 'OOOYY' ]
값이 나온다. Y도 동일하게 적용- 각각의 길이를 비교해서 답을 찾았다.
대박...