[Level1] 1. 1 ~ 3




1. 로또의 최고 순위와 최저 순위

programmers


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. 두 개 뽑아서 더하기

programmers


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의 개수

programmers

두 정수 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