일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 문자열
- BASIC
- 다이나믹 프로그래밍
- 그래프 이론
- 그래프이론
- 프로그래머스
- 파이썬
- programmers
- 자바스크립트
- 프로그래머스스쿨
- JavaScript
- web
- 백준
- level2
- 딕셔너리
- 자료구조
- CSS
- 브루트포스 알고리즘
- DFS
- 그래프 탐색
- 알고리즘
- 스택
- 웹 프론트엔드
- 정렬
- lv2
- 너비 우선 탐색
- DP
- 구현
- 그리디 알고리즘
- BFS
Archives
- Today
- Total
DevLog:-)
[프로그래머스][Javascript]할인행사 본문
반응형
문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
코드
function solution(want, number, discount) {
var answer = 0;
let data=[];
let check = 0;
let count =0;
for(let i in want){
data[want[i]] = number[i];
} //want배열과 number배열의 값을 object형태로 data에 담음
for(let i in discount){
let d =[];
let n_d = discount.slice(i,parseInt(i)+10); //(for i in 문자열) 에서 나오는 i는 문자열임을 주의하자 '1' + 10 = '110'
for(let j of n_d){
d[j] = (d[j]||0)+1;
}
check = 1;
for(let j in data){
//console.log(d.inclues(j));-> undefined //arr.includes('a')에서 a는 인덱스가 아닌 요소 값을 말함을 주의히자 인덱스 값의 여부는 알 수 없음
if( !d[j] || data[j] > d[j]){check =0;break;}
}
if(check ==1){count++;}
}
return count;
}
✅checkpoint!
for(let i in arr)에서 i의 타입은? | 문자이다! 숫자 계산을 할 때 parseInt()를 하자 |
object arr = { a:b} -arr인덱스에 a가 있는 지 확인 -arr요소에 b가 있는 지 확인 |
-if(arr[a]){} -if(arr.includes(b)) |
📖다른 풀이
function solution(want, number, discount) {
let count = 0;
for (let i = 0; i < discount.length - 9; i++) { //discount.length - 9 10개보다 적게 남는 경우 제외(시간 절약을 할 수 있음)
const slice = discount.slice(i, i+10);
let flag = true;
for (let j = 0; j < want.length; j++) {
if (slice.filter(item => item === want[j]).length !== number[j]) {
flag = false;
break;
}
}
if (flag) count += 1;
}
return count;
}
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
뒤에 있는 큰 수 찾기 (0) | 2023.07.27 |
---|---|
[프로그래머스][Javascript]더 맵게 (0) | 2023.07.27 |
[프로그래머스][Javascript]괄호 회전하기 (0) | 2023.07.26 |
[프로그래머스][Javascript]의상 (0) | 2023.07.25 |
[프로그래머스][Javascript]숫자 변환하기 (0) | 2023.07.21 |