codility - PassingCars

이슬비·2025년 6월 10일
0

Coding Test

목록 보기
15/16

문제

  • 서로 동/서 교차되는 차의 개수 구하기
  • 1일 때 이전에 나온 0이 몇개인지 구하면 됨

내 코드

def solution(A):
    east = []
    result = 0
    for i, a in enumerate(A):
        if a == 0:
            east.append(a)
        else:
            result += len(east)
    if result > 1000000000:
        return -1
    return result
    
  • 처음에 result 조건 안 줘서 틀림 ㅋㅋ .. 문제를 똑바로 읽자

    지피티 코드

 def solution(A):
    east_count = 0   # 지금까지 본 0의 개수
    result = 0

    for a in A:
        if a == 0:          # 동쪽으로 가는 차
            east_count += 1
        else:               # 서쪽으로 가는 차
            result += east_count
            if result > 1_000_000_000:
                return -1

    return result
  • 공간복잡도까지 고려했을 때 좋은 코드
  • 사실 east를 굳이 리스트로 둘 필요가 없음
profile
정말 알아?

0개의 댓글