μ μˆ˜κ³„μ‚°

πŸ“„ 문제

OX λ¬Έμ œλŠ” λ§žκ±°λ‚˜ ν‹€λ¦° 두 경우의 닡을 κ°€μ§€λŠ” 문제λ₯Ό λ§ν•œλ‹€.
μ—¬λŸ¬ 개의 OX 문제둜 λ§Œλ“€μ–΄μ§„ μ‹œν—˜μ—μ„œ μ—°μ†μ μœΌλ‘œ 닡을 λ§žνžˆλŠ” κ²½μš°μ—λŠ”
가산점을 μ£ΌκΈ° μœ„ν•΄μ„œ λ‹€μŒκ³Ό 같이 점수 계산을 ν•˜κΈ° 둜 ν•˜μ˜€λ‹€.
1번 λ¬Έμ œκ°€ λ§žλŠ” κ²½μš°μ—λŠ” 1점으둜 κ³„μ‚°ν•œλ‹€.
μ•žμ˜ λ¬Έμ œμ— λŒ€ν•΄μ„œλŠ” 닡을 틀리닀가 닡이 λ§žλŠ” 처음 λ¬Έμ œλŠ” 1점으둜 κ³„μ‚°ν•œλ‹€.
λ˜ν•œ, μ—°μ†μœΌλ‘œ 문제의 닡이 λ§žλŠ” κ²½μš°μ—μ„œ,
두 번째 λ¬Έμ œλŠ” 2점, μ„Έ 번째 λ¬Έμ œλŠ” 3점, ..., K번째 λ¬Έμ œλŠ” K점으둜 κ³„μ‚°ν•œλ‹€.
ν‹€λ¦° λ¬Έμ œλŠ” 0점으둜 κ³„μ‚°ν•œλ‹€.

예λ₯Ό λ“€μ–΄, μ•„λž˜μ™€ 같이 10 개의 OX λ¬Έμ œμ—μ„œ 닡이 λ§žμ€ 문제의 κ²½μš°μ—λŠ” 1둜 ν‘œμ‹œν•˜κ³ ,
ν‹€λ¦° κ²½μš°μ—λŠ” 0으둜 ν‘œμ‹œν•˜μ˜€μ„ λ•Œ, 점수 계산은 μ•„λž˜ ν‘œμ™€ 같이 κ³„μ‚°λ˜μ–΄, 총 μ μˆ˜λŠ” 1+1+2+3+1+2=10 점이닀.

주어진 κ°’: 1 0 1 1 1 0 0 1 1 0

μ‹œν—˜λ¬Έμ œμ˜ 채점 κ²°κ³Όκ°€ μ£Όμ–΄μ‘Œμ„ λ•Œ, 총 점수λ₯Ό κ³„μ‚°ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€.

β–£ μž…λ ₯μ„€λͺ…
첫째 쀄에 문제의 개수 N (1 ≤ N ≤ 100)이 주어진닀.
λ‘˜μ§Έ μ€„μ—λŠ” N개 문제의 채점 κ²°κ³Όλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 0 ν˜Ήμ€ 1이 빈 칸을 사이에 두고 주어진닀.
0은 문제의 닡이 ν‹€λ¦° 경우이고, 1은 문제의 닡이 λ§žλŠ” κ²½μš°μ΄λ‹€.

β–£ 좜λ ₯μ„€λͺ…
첫째 쀄에 μž…λ ₯μ—μ„œ 주어진 채점 결과에 λŒ€ν•˜μ—¬ 가산점을 κ³ λ €ν•œ 총 점수λ₯Ό 좜λ ₯ν•œλ‹€.

β–£ μž…λ ₯예제
10 1 0 1 1 1 0 0 1 1 0

β–£ 좜λ ₯예제
10

🧞 풀이

더보기

풀이

# μž…λ ₯ : 첫째 쀄 - 문제 갯수, n
# μž…λ ₯ : λ‘˜μ§Έ 쀄 - 문제 κ°―μˆ˜μ— ν•΄λ‹Ήν•˜λŠ” 채점 κ²°κ³Ό 0 / 1
# 좜λ ₯ : 가산점 κ³ λ €ν•œ 총 점수 좜λ ₯

n = int(input())                        # μ •μˆ˜ n ν• λ‹Ή
t = list(map(int, input().split()))     # t에 각 채점 κ²°κ³Ό 리슀트둜 ν• λ‹Ή
a = 0                                   # λˆ„μ λ  λ•Œ 가산점을 담을 μ •μˆ˜ a ν• λ‹Ή; μ΄ˆκΈ°κ°’: 0
d = 0                                   # 총 점수λ₯Ό 담을 μ •μˆ˜ d ν• λ‹Ή; μ΄ˆκΈ°κ°’: 0

for i in t:                             # t μš”μ†Œ 반볡
    if i == 1:                          # iκ°€ 1이면
        d += (1 + a)                    # d에 1 + a만큼 μΆ”κ°€ (μ²˜μŒμ—λŠ” aκ°€ 0μ΄λ‹ˆ 1만큼 좔가됨)
        a += 1                          # a에 1 μΆ”κ°€
    else:                               # iκ°€ 1이 μ•„λ‹ˆλ©΄
        a = 0                           # aλŠ” 0으둜 μ΄ˆκΈ°ν™”

print(d)                                # d 좜λ ₯

 

λ‹€λ₯Έ μ‚¬λžŒ ν’€μ΄

# 점수 계산

n = int(input())
a = list(map(int, input().split()))

sum = 0
cnt = 0
for x in a: # a에 μžˆλŠ” κ°’λ“€ λ§ˆλ‹€
    if x == 1: # λ§Œμ•½ xκ°€ 1이라면
        cnt += 1 # 가산점 1점 μΆ”κ°€
        sum += cnt # 가산점이 곧 μ μˆ˜μ— μΆ”κ°€
    else: # 그렇지 μ•Šλ‹€λ©΄
        cnt = 0 # 가산점은 0으둜 μ΄ˆκΈ°ν™”

print(sum)

+ Recent posts