728x90
오늘도 역시 자기 전 김태원 파이썬 알고리즘 문제를 풀었다.
드디어 섹션2의 모든 문제가 끝났다.
포기하지말고 섹션8까지 열심히 듣자.
내가 푼 풀이 :
if __name__=="__main__" :
n = int(input())
arr = list(map(int,input().split()))
arr2 = [0]*n
for idx, val in enumerate(arr) :
if val == 1 : # O인 상황
if idx == 0 : # 첫번째 문제라면 무조건 1점
arr2[0] =1
else : # 첫번째 문제가 아니라면
arr2[idx] = arr2[idx-1]+1
else :
continue
print(sum(arr2))
이 풀이를 만들고 생각보다 간단하게 만들었다라고 생각했다.
강사님의 풀이는 어떨지 기대가 되었다.
근데 정말 강사님을 더 간단하게 풀이하셨다.
강사님의 코드 :
if __name__=="__main__" :
n = int(input())
arr = list(map(int,input().split()))
sum = 0
cnt =0
for x in arr :
if x == 1 :
cnt +=1
sum += cnt
else : cnt = 0
print(sum)
정말 대단하시다!
내 코드에서는 arr2라는 리스트를 생성하여 더해지는 점수들을 index별로 저장하였다.
하지만 이 코드에서는 그런것 없이
점수가 발생할 때마다 sum에 더해주었다.
더해지는 수는 cnt로 1이 있을 때마다 1씩 증가한다.
0이 나와서 리셋되는 경우는 cnt=0을 이용해 리셋해준다.
그렇게 해서 나오는 sum을 출력해주면 된다.
반응형
'취업 > TIL' 카테고리의 다른 글
20231113_회문 문자열 검사[Python] (0) | 2023.11.13 |
---|---|
20231108_주사위게임_[Python알고리즘] (1) | 2023.11.08 |
20231107_뒤집은소수_소수판별법[Python알고리즘] (1) | 2023.11.07 |
20231102_알고리즘(자릿수의 합,소수,웹서비스구조_두번째확장) (0) | 2023.11.04 |
20231101_TIL(알고리즘-대표값,정다면체_웹서비스구조 첫번째) (2) | 2023.11.01 |