[Level1] 1. 1 ~ 3
1. 로또의 최고 순위와 최저 순위
function solution(lottos, win_nums) {
let zero = 0;
let cnt = 0;
for (key in lottos) {
if (!lottos[key]) {
zero++;
}
}
for (let i = 0; i < lottos.length; i++) {
for (let j = 0; j < lottos.length; j++) {
if (lottos[i] === win_nums[j]) {
cnt++;
}
}
}
let arr = [cnt + zero, cnt];
let result = [];
for (let i = 0; i < arr.length; i++) {
switch (arr[i]) {
case 6:
result.push(1);
break;
case 5:
result.push(2);
break;
case 4:
result.push(3);
break;
case 3:
result.push(4);
break;
case 2:
result.push(5);
break;
default:
result.push(6);
break;
}
}
return result
}
let lottos = [44, 1, 0, 0, 31, 25];
let win_nums = [31, 10, 45, 1, 6, 19];
console.log(solution(lottos, win_nums));
function solution(lottos, win_nums) {
const answer = [];
const min = lottos.filter(n => win_nums.includes(n)).length;
const max = lottos.filter(n => n === 0).length + min;
max > 1 ? answer.push(7 - max) : answer.push(6);
min > 1 ? answer.push(7 - min) : answer.push(6);
return answer;
}
- filter : cb에 해당하는 모든 요소를 모아 새 배열로 반환
- includes : 배열이 특정 값을 포함하는지 true/false
미쳤다….! 등수 (7-개수) 는 우와….
2. 두 개 뽑아서 더하기
function solution(numbers) {
let set = new Set()
for (let i = 0; i<numbers.length; i++){
for (let j = i+1; j<numbers.length; j++){
set.add(numbers[i] + numbers[j])
}
}
let answer = [...set]
return answer.sort((x,y)=>x-y)
}
let numbers = [2,1,3,4,1]
console.log(solution(numbers));
const row = '*'.repeat(a)
for(let i =0; i < b; i++){
console.log(row)
}
3. 문자열 내 p와 y의 개수
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
function solution(s){
s = s.toUpperCase()
let p = 0
let y = 0
for (let i = 0; i <s.length; i++){
if (s[i] === "P"){
p++
} else if (s[i] === "Y"){
y++
}
}
return p === y ? true : p + y === 0 ? true : false
}
console.log(solution("pPoooyY"));
return s.toUpperCase().split("P").length === s.toUpperCase().split("Y").length;
var solution=s=>(s.match(/p/ig)||[]).length==(s.match(/y/ig)||[]).length