255. MaxCounters
1. JavaScript
정해
/// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(N, A) {
// write your code in JavaScript (Node.js 8.9.4)
let counters = new Array(N).fill(0);
let max = 0;
let lastMax = 0;
for(let k of A){
if(k <= N){
if(counters[k - 1] < lastMax){
counters[k - 1] = lastMax;
}
counters[k - 1]++;
if(max < counters[k -1]){
max = counters[k - 1];
}
}else{
lastMax = max;
}
}
for(let i = 0; i < N; i++){
if(counters[i] < lastMax){
counters[i] = lastMax;
}
}
return counters
}
- Math.max로 매번 최댓값을 구하기 어렵기 때문에 다음과 같은 방식을 사용하는 것 같다.
50%
function solution(N, A) {
let count = Array(N).fill(0);
for (i = 0; i < A.length; i++) {
if (1 <= A[i] && A[i] < N) {
count[A[i] - 1] += 1;
} else {
count.fill(Math.max(...count));
}
}
return count;
}
console.log(solution(5, [3, 4, 4, 6, 1, 4, 4]))
2. Python
정해
def solution(N,A):
savemaximum = 0
maximum = 0
counter = [0]*N
for i in range(len(A)):
if A[i]<=N:
if counter[A[i]-1]<savemaximum:
counter[A[i]-1]=savemaximum
counter[A[i]-1]+=1
maximum = max(counter[A[i]-1],maximum)
else:# N보다 큰 수가 들어오면 maximum으로 동기화
savemaximum = maximum
for i in range(N):
if counter[i]<savemaximum:
counter[i]=savemaximum
return counter
출처: https://imksh.com/68 [강승현입니다]
60%
def solution(N, A):
result = [0] * N
for i in A:
if 1 <= i <= N:
result[i-1] += 1
else:
result = [max(result)] * N
return result
Author And Source
이 문제에 관하여(255. MaxCounters), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@corone_hi/255.-MaxCounters저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)