본문 바로가기

코테

코테 - 탐욕법 lev1

Map()을 사용하고 싶어서

간단히 설명을 한다면 잃어버린학생의 번호를 key로 설정 value는 0

여벌옷이 있는 학생배열을 돌면서 앞뒤 번호에 잃어버린 사람이 있다면 value를 1로 해서 빌려주는 로직을 생각하였습니다

+ 여벌옷이 있는학생이 잃어버릴 경우도 있다는.....

 

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번호의 학생이나 바로 뒷번호의 학생에게만 체육복을 빌려줄 수 있습니다. 예를 들어, 4번 학생은 3번 학생이나 5번 학생에게만 체육복을 빌려줄 수 있습니다. 체육복이 없으면 수업을 들을 수 없기 때문에 체육복을 적절히 빌려 최대한 많은 학생이 체육수업을 들어야 합니다.

from 프로그래머스

https://school.programmers.co.kr/learn/courses/30/lessons/42862

 

 

 

function solution(n, lost, reserve) {
    let lose = new Map()
    lost.forEach(num=>lose.set(num,0))
    
    reserve.forEach(num=>{
        lose.has(num+1)==true? lose.set(num+1,1) : lose.has(num-1) ==true?lose.set(num-1,1) : 0;
    })
    
    let count = 0;
  for (let value of lose.values()) {
    if (value === 0) {
      count++;
    }
  }

 
    return n-count;
}

 

 내일 해결해야겠다.

 

lost.sort()
 reserve.sort()

 이거 추가하니까 100점....(88점일때 실패 케이스 7번, 18번 ,20번)

 

 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

'코테' 카테고리의 다른 글

코테 - 연습문제 - 카드뭉치  (0) 2023.06.19
코테 - 완전탐색 - 최소 직사각형  (0) 2023.06.15
코테 - 콜라  (0) 2023.06.08
코테 - 두 개 뽑아서 더하기  (0) 2023.03.31
코테-로또의 최고 순위와 최저 순위  (0) 2023.03.18