[프로그래머스 레벨투] 기능개발 ⚙️
🔽 문제 링크
https://programmers.co.kr/learn/courses/30/lessons/42586
✍🏼 나의 수도 코드
1) progress의 각 요소를 100에서 빼준, 새로운 배열 todoArr를 만든다.
2) 해당 todoArr 배열은 진도까지 남은 퍼센티지를 나타내는 배열이다.
3) todoArr 배열의 각 요소를 speeds로 나누어준다.
4) 각 요소들은 각 기능들을 개발하기까지 며칠이 남았는지를 나타내게 된다.
5) todoArr를 포문을 돌며 배포해준다.
👨🏻💻 나의 문제 풀이
function solution(progresses, speeds) {
let howManyDays = progresses.map(item => 100 - item).map((item, index) => Math.ceil(item / speeds[index]));
let result = [];
let count = 1;
let standard = howManyDays[0];
for(let i = 1; i < howManyDays.length + 1; i++){
if(howManyDays[i] > standard || !howManyDays[i]){
result.push(count);
standard = howManyDays[i];
count = 1;
} else {
count++;
}
}
return result;
}
👩🏻💻 다른 사람의 코드
// 나의 풀이와 거의 유사하다.
// 다만 반복문 밖에 count라는 변수를 두는 것이 아니라, j라는 변수를 하나 더 두면서,
// answer 배열의 몇 번째에 ++를 해줄 건지 마크하고 있다.
function solution(progresses, speeds) {
let answer = [0];
let days = progresses.map((progress, index) => Math.ceil((100 - progress) / speeds[index]));
let maxDay = days[0];
for(let i = 0, j = 0; i< days.length; i++){
if(days[i] <= maxDay) {
answer[j] += 1;
} else {
maxDay = days[i];
answer[++j] = 1;
}
}
return answer;
}
🍯 알게 된 것들
- for문에서 변수 선언할 때, 당연한 것이지만, ","를 이용해 여러 개의 변수를 선언할 수 있다.
(당연한 거지만, 딱히 이중반복문을 사용할 때가 아니라면, 반복문 변수를 두 개 이상 선언해서 사용해본 경험이 없다.)
Author And Source
이 문제에 관하여([프로그래머스 레벨투] 기능개발 ⚙️), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@9rganizedchaos/프로그래머스-레벨투-기능개발저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)