261. PassingCars

아현·2021년 8월 15일
0

Algorithm

목록 보기
273/400
post-thumbnail



1. JavaScript


정해



// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');

function solution(A) {
    // write your code in JavaScript (Node.js 8.9.4)
    let allPair = 0;
    let count = 0;

    for(let i in A){
        if(A[i] == 0){
            count++;
        }else{
            allPair += count;
        }
    }

    if(allPair > 1000000000){
        return -1
    }else{
        return allPair
    }
}


  • 0만 카운팅해주면 된다.

    • 0이 한 번 등장하면 다음 0이 등장할 때까지 1씩 더해주고, 0이 한번 더 등장하면 다음 0이 나올 때까지 2씩 더해주고...



50% (TIMEOUT ERROR)



// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');

function solution(A) {
    // write your code in JavaScript (Node.js 8.9.4)
    let allPair = 0
    for(let i in A){
        if (A[i] == 0){
            let list = A.slice(i);
            let count = list.filter(x => 1 === x).length;
            allPair += count;
        }
    }

    if(allPair > 1000000000){
        return -1
    }else{
        return allPair
    }
}




2. Python


def solution(A):
    result = 0
    count_zero = 0
    for i in A:
        if i == 1 and count_zero == 0:
            continue
        elif i == 0:
            count_zero += 1
        elif i == 1:
            result += count_zero

    if result > 1000000000:
        return -1
    return result


profile
For the sake of someone who studies computer science

0개의 댓글