Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 알고리즘
- 네트워크
- 생애첫계약
- 후니의쉽게쓴시스코네트워킹
- array
- HeadFirstDesignPatterns
- 자료구조
- 정보
- 모여봐요동물의숲
- 청년내일채움공제
- leetcode
- 부분합알고리즘
- 프로그래머스
- 사회초년생
- 정보처리기사개정
- 후니의쉽게쓴시스코라우팅
- 튜터링
- 자취준비
- 캡쳐링
- IT기초
- 동적계획법
- C++
- 코딩테스트
- 실업급여
- 전화영어
- 회사폐업
- 막대기자르기
- 실업인정인터넷신청
- 취업사실신고
- 순열
Archives
- Today
- Total
따봉도치야 고마워
[프로그래머스] 체육복 본문
https://programmers.co.kr/learn/courses/30/lessons/42862
코딩테스트 연습 - 체육복
점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번
programmers.co.kr
풀이
놓치기 쉬운 핵심 2가지만 신경쓰니까 바로 풀렸다
- 도둑 맞은 학생이 여벌 옷이 있는 경우 : 미리 lost, reserve에서 소거
- input 값이 정렬되지 않은 경우 : 순서에 상관없이 짜거나, sort
Code 1.
function solution(n, lost, reserve) {
var answer = 0;
const tmpLost = lost.slice();
for (let idx in tmpLost) {
const student = tmpLost[idx];
if (hasReserveJersey(student, reserve)) {
lost.splice(lost.indexOf(student), 1);
}
}
for (let i = 1; i <= n; i++) {
if (isLost(i, lost)) {
const hasJersey = hasReserveJersey(i - 1, reserve) ||
hasReserveJersey(i + 1, reserve);
if (!hasJersey) {
continue;
}
}
answer ++;
}
return answer;
}
function isLost(n, lost) {
return lost.find(e => e === n);
}
function hasReserveJersey(n, reserve) {
const idx = reserve.indexOf(n);
if (idx === -1) {
return false;
}
reserve.splice(idx, 1);
return true;
}
Code 2.
function solution(n, lost, reserve) {
const realLost = lost.filter(e => !reserve.includes(e)).sort();
const realReserve = reserve.filter(e => !lost.includes(e)).sort();
const lostCount = realLost.filter(e => {
return !hasReserveJersey(e - 1, realReserve) &&
!hasReserveJersey(e + 1, realReserve);
}).length;
return n - lostCount;
}
function hasReserveJersey(n, reserve) {
const idx = reserve.indexOf(n);
if (idx === -1) {
return false;
}
reserve.splice(idx, 1);
return true;
}
'프로그래밍 > 알고리즘' 카테고리의 다른 글
[프로그래머스] 모의고사 (0) | 2021.10.17 |
---|---|
[프로그래머스] 카카오 인턴 키패드 입력 (0) | 2021.10.03 |
[프로그래머스] 정수 삼각형 (0) | 2020.09.10 |
[프로그래머스] 멀쩡한 사각형 (0) | 2020.09.09 |
[프로그래머스] 124 나라의 숫자 (0) | 2020.09.09 |