[programmers] Lv2. 機能開発Javascript|protect-me
🕊 Link
Lv2. 機能開発Javascript
https://programmers.co.kr/learn/courses/30/lessons/42586
🧑🏻💻 Code(javascript) function solution(pg, spd) {
const answer = [];
while (pg.length > 0) {
for (let i = 0; i < pg.length; i++) {
pg[i] = pg[i] + spd[i];
}
if (pg[0] >= 100) {
let cnt = 0;
for (let j = 0; j < pg.length; j++) {
if (pg[j] >= 100) cnt++;
else break;
}
answer.push(cnt);
while (cnt > 0) {
pg.shift();
spd.shift();
cnt--;
}
}
}
return answer;
}
💡 Solution function solution(pg, spd) {
const answer = [];
while (pg.length > 0) {
// pg의 요소에 각각의 spd만큼 더해줌
for (let i = 0; i < pg.length; i++) {
pg[i] = pg[i] + spd[i];
}
// pg의 첫번째 요소가 100을 넘는 경우
if (pg[0] >= 100) {
let cnt = 0;
// 그 뒤에 100을 넘는 요소가 있는지 확인하고 count
for (let j = 0; j < pg.length; j++) {
if (pg[j] >= 100) cnt++;
else break;
// else break를 하지 않으면 100을 넘긴 모든 pg에 대해 count함
// 앞의 pg가 끝나지 않은 상태에서 배포는 불가능하기 때문에 break
}
answer.push(cnt);
// count만큼 pg와 spd에서 요소를 제거
while (cnt > 0) {
pg.shift();
spd.shift();
cnt--;
}
}
}
return answer;
}
👨🏻💻💭 Self Feedback
同時に、ドアが無限リングに乗らないように注意します.
function solution(pg, spd) {
const answer = [];
while (pg.length > 0) {
for (let i = 0; i < pg.length; i++) {
pg[i] = pg[i] + spd[i];
}
if (pg[0] >= 100) {
let cnt = 0;
for (let j = 0; j < pg.length; j++) {
if (pg[j] >= 100) cnt++;
else break;
}
answer.push(cnt);
while (cnt > 0) {
pg.shift();
spd.shift();
cnt--;
}
}
}
return answer;
}
💡 Solution function solution(pg, spd) {
const answer = [];
while (pg.length > 0) {
// pg의 요소에 각각의 spd만큼 더해줌
for (let i = 0; i < pg.length; i++) {
pg[i] = pg[i] + spd[i];
}
// pg의 첫번째 요소가 100을 넘는 경우
if (pg[0] >= 100) {
let cnt = 0;
// 그 뒤에 100을 넘는 요소가 있는지 확인하고 count
for (let j = 0; j < pg.length; j++) {
if (pg[j] >= 100) cnt++;
else break;
// else break를 하지 않으면 100을 넘긴 모든 pg에 대해 count함
// 앞의 pg가 끝나지 않은 상태에서 배포는 불가능하기 때문에 break
}
answer.push(cnt);
// count만큼 pg와 spd에서 요소를 제거
while (cnt > 0) {
pg.shift();
spd.shift();
cnt--;
}
}
}
return answer;
}
👨🏻💻💭 Self Feedback
同時に、ドアが無限リングに乗らないように注意します.
function solution(pg, spd) {
const answer = [];
while (pg.length > 0) {
// pg의 요소에 각각의 spd만큼 더해줌
for (let i = 0; i < pg.length; i++) {
pg[i] = pg[i] + spd[i];
}
// pg의 첫번째 요소가 100을 넘는 경우
if (pg[0] >= 100) {
let cnt = 0;
// 그 뒤에 100을 넘는 요소가 있는지 확인하고 count
for (let j = 0; j < pg.length; j++) {
if (pg[j] >= 100) cnt++;
else break;
// else break를 하지 않으면 100을 넘긴 모든 pg에 대해 count함
// 앞의 pg가 끝나지 않은 상태에서 배포는 불가능하기 때문에 break
}
answer.push(cnt);
// count만큼 pg와 spd에서 요소를 제거
while (cnt > 0) {
pg.shift();
spd.shift();
cnt--;
}
}
}
return answer;
}
同時に、ドアが無限リングに乗らないように注意します.
function solution(progresses, speeds) {
let answer = [0];
// 각 pg의 잔여 작업 일수를 미리 계산
let days = progresses.map((progress, index) =>
Math.ceil((100 - progress) / speeds[index])
);
let maxDay = days[0];
// i, j 두 변수를 할당한 것이 인상점, ++j 활용
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;
}
댓글 환영
질문 환영
by.protect-me
Reference
この問題について([programmers] Lv2. 機能開発Javascript|protect-me), 我々は、より多くの情報をここで見つけました https://velog.io/@protect-me/programmers-Lv2.-기능개발-Javascriptテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol