일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 개발자_조이킴
- select
- array
- Programmers
- array.slice()
- node.js
- SQL
- MySQL
- 알고리즘
- 블록체인
- 코플릿
- JavaScript
- 코딩공부
- join
- 자바스크립트
- 정규표현식
- array.push()
- for문
- Hackerrank
- 최강의 인생
- 개발자의 책장
- 배열
- Where
- 코드스테이츠
- 코딩테스트
- 프로그래머스
- Developer_JoyKim
- 재귀함수
- 역행자
- Algorithms
Archives
- Today
- Total
CodingSpace
프로그래머스#49(Lv.1)_체육복 본문
체육복
다른 분들이 하신것 보고 배우고 또 배우자! (find 메소드!)
※ find MDN
포기하지말고 계속해서 공부하자!
화이팅:)
// 프로그래머스 - 체육복 function solution(n, lost, reserve) { // 여벌을 가지고 있지만 두벌 중 한번을 도둑 맞은 경우, 해당 학생(번호)를 lost와 reserve에서 모두 제거 let newLost = lost.filter((el) => !reserve.includes(el)) let newReserve = reserve.filter((el) => !lost.includes(el)) // 오름차순으로 정렬: 최대한 많은 학생들에게 체육복을 나눠주기 위함 newLost.sort((a, b) => a - b) newReserve.sort((a, b) => a - b) // reserve의 길이가 0이 될때까지 while문을 돌려준다. while(newReserve.length > 0) { // reserve 맨 앞의 요소를 head에 할당 // reserve 맨 앞의 요소는 제거 (하나씩 차감) let head = newReserve.shift() for(let i = 0; i < newLost.length; i++) { // 배열 lost i번째 요소에 +1, -1 값이 head와 같다면 해당 요소를 배열 lost에서 제거 if(newLost[i] - 1 === head || newLost[i] + 1 === head) { newLost.splice(i, 1) break; } } } // 전체학생 수 n에서 여벌의 체육복을 받지 못한 친구들의 명수(lost.length)를 뺴준다 return n - newLost.length } |
<다른분의 solution>
'프로그래머스 > Level1' 카테고리의 다른 글
프로그래머스#51(Lv.1)_3진법 뒤집기 (0) | 2021.11.04 |
---|---|
프로그래머스#50(Lv.1)_모의고사 (0) | 2021.11.04 |
프로그래머스#48(Lv.1)_예산 (0) | 2021.11.03 |
프로그래머스#47(Lv.1)_음양 더하기 (0) | 2021.11.03 |
프로그래머스#46(Lv.1)_소수 만들기 (0) | 2021.10.31 |
Comments