プログラマーLv 1.スポーツウェア
質問する
貪欲な問題
https://programmers.co.kr/learn/courses/30/lessons/42862
に近づく
stu = [1] * (n+2)
for i in lost:
stu[i] -= 1
for i in reserve:
stu[i] += 1
for i in range(1,len(stu)):
if stu[i] == 0 and stu[i-1] == 2 :
stu[i-1] -= 1
stu[i] += 1
elif stu[i] == 0 and stu[i+1] == 2 :
stu[i+1] -= 1
stu[i] += 1
したがって,先頭と先頭のindexを除いて,初期配列ではゼロ値以外の数が答えである.コード#コード#
python
def solution(n, lost, reserve):
stu = [1]*(n+2)
for i in lost:
stu[i] -= 1
for i in reserve:
stu[i] += 1
for i in range(1,len(stu)):
if stu[i] == 0 and stu[i-1] == 2 :
stu[i-1] -= 1
stu[i] += 1
elif stu[i] == 0 and stu[i+1] == 2 :
stu[i+1] -= 1
stu[i] += 1
result = [x for x in stu[1:-1] if x!=0]
return len(result)
js
function solution(n, lost, reserve) {
let stu = [];
for(let i=0; i<n+2; i++){
stu.push(1);
}
for(let i=0; i<lost.length; i++){
stu[lost[i]] -= 1;
}
for(let i=0; i<reserve.length; i++){
stu[reserve[i]] += 1;
}
for(let i=1; i<stu.length-1; i++){
if(stu[i]==0 && stu[i-1]==2){
stu[i-1] -= 1;
stu[i] += 1;
}else if(stu[i]==0 && stu[i+1]==2){
stu[i+1] -= 1;
stu[i] += 1;
}
}
let result = stu.slice(1, n+1);
return result.filter(x => x!==0).length;
}
Reference
この問題について(プログラマーLv 1.スポーツウェア), 我々は、より多くの情報をここで見つけました
https://velog.io/@ryong9rrr/프로그래머스-Lv1.-체육복
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
def solution(n, lost, reserve):
stu = [1]*(n+2)
for i in lost:
stu[i] -= 1
for i in reserve:
stu[i] += 1
for i in range(1,len(stu)):
if stu[i] == 0 and stu[i-1] == 2 :
stu[i-1] -= 1
stu[i] += 1
elif stu[i] == 0 and stu[i+1] == 2 :
stu[i+1] -= 1
stu[i] += 1
result = [x for x in stu[1:-1] if x!=0]
return len(result)
function solution(n, lost, reserve) {
let stu = [];
for(let i=0; i<n+2; i++){
stu.push(1);
}
for(let i=0; i<lost.length; i++){
stu[lost[i]] -= 1;
}
for(let i=0; i<reserve.length; i++){
stu[reserve[i]] += 1;
}
for(let i=1; i<stu.length-1; i++){
if(stu[i]==0 && stu[i-1]==2){
stu[i-1] -= 1;
stu[i] += 1;
}else if(stu[i]==0 && stu[i+1]==2){
stu[i+1] -= 1;
stu[i] += 1;
}
}
let result = stu.slice(1, n+1);
return result.filter(x => x!==0).length;
}
Reference
この問題について(プログラマーLv 1.スポーツウェア), 我々は、より多くの情報をここで見つけました https://velog.io/@ryong9rrr/프로그래머스-Lv1.-체육복テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol