[Algorithm] BOJ 10773,Python

yennΒ·2021λ…„ 9μ›” 27일
0

Algorithm

λͺ©λ‘ 보기
7/7
post-thumbnail

πŸ“Œλ¬Έμ œ

λ‚˜μ½”λ” κΈ°μž₯ μž¬λ―Όμ΄λŠ” 동아리 νšŒμ‹μ„ μ€€λΉ„ν•˜κΈ° μœ„ν•΄μ„œ μž₯λΆ€λ₯Ό κ΄€λ¦¬ν•˜λŠ” 쀑이닀.
μž¬ν˜„μ΄λŠ” 재민이λ₯Ό λ„μ™€μ„œ λˆμ„ κ΄€λ¦¬ν•˜λŠ” 쀑인데, μ• μ„ν•˜κ²Œλ„ 항상 μ •μ‹ μ—†λŠ” μž¬ν˜„μ΄λŠ” λˆμ„ μ‹€μˆ˜λ‘œ 잘λͺ» λΆ€λ₯΄λŠ” 사고λ₯Ό 치기 μΌμ‘€μ˜€λ‹€.
μž¬ν˜„μ΄λŠ” 잘λͺ»λœ 수λ₯Ό λΆ€λ₯Ό λ•Œλ§ˆλ‹€ 0을 μ™Έμ³μ„œ, κ°€μž₯ μ΅œκ·Όμ— μž¬λ―Όμ΄κ°€ μ“΄ 수λ₯Ό μ§€μš°κ²Œ μ‹œν‚¨λ‹€.
μž¬λ―Όμ΄λŠ” μ΄λ ‡κ²Œ λͺ¨λ“  수λ₯Ό λ°›μ•„ 적은 ν›„ κ·Έ 수의 합을 μ•Œκ³  μ‹Άμ–΄ ν•œλ‹€. 재민이λ₯Ό λ„μ™€μ£Όμž!

μž…λ ₯

첫 번째 쀄에 μ •μˆ˜ Kκ°€ 주어진닀. (1 ≀ K ≀ 100,000)
이후 K개의 쀄에 μ •μˆ˜κ°€ 1κ°œμ”© 주어진닀. μ •μˆ˜λŠ” 0μ—μ„œ 1,000,000 μ‚¬μ΄μ˜ 값을 가지며,
μ •μˆ˜κ°€ "0" 일 κ²½μš°μ—λŠ” κ°€μž₯ μ΅œκ·Όμ— μ“΄ 수λ₯Ό μ§€μš°κ³ , 아닐 경우 ν•΄λ‹Ή 수λ₯Ό μ“΄λ‹€.
μ •μˆ˜κ°€ "0"일 κ²½μš°μ— μ§€μšΈ 수 μžˆλŠ” μˆ˜κ°€ μžˆμŒμ„ 보μž₯ν•  수 μžˆλ‹€.

좜λ ₯ν…μŠ€νŠΈ

μž¬λ―Όμ΄κ°€ μ΅œμ’…μ μœΌλ‘œ 적어 λ‚Έ 수의 합을 좜λ ₯ν•œλ‹€. μ΅œμ’…μ μœΌλ‘œ 적어낸 수의 합은 231^-1보닀 μž‘κ±°λ‚˜ 같은 μ •μˆ˜μ΄λ‹€.

이번 λ¬Έμ œλŠ” κ°„λ‹¨ν•œ μŠ€νƒμ„ κ΅¬ν˜„ν•΄μ„œ ν’€λ©΄λœλ‹€κ³  생각함

πŸ“Œμ½”λ“œ

βœ”οΈ μ‹œκ°„μ΄ˆκ³Ό μ½”λ“œ

n = int(input())
num = [int(input()) for _ in range(0,n)]
sum = 0
zero = 0
i = n-1

while len(num) != 0:
	if num[i] == 0 :
		zero += 1
        num.pop()
        i -= 1
    else:
        if zero == 0:
        	sum += num.pop()
        	i -= 1 
    else: 
        num.pop()
        i -= 1
        zero -= 1

print(sum)

βœ”οΈ μ΅œμ’… μ½”λ“œ

n = int(input())
nums = []

for i in range(n):
    num = int(input())
    if num == 0:
        nums.pop()
    else:
        nums.append(num)

print(sum(nums))

πŸ“Œν’€μ΄

μž…λ ₯ λ°›λŠ” 숫자λ₯Ό μˆœμ„œλŒ€λ‘œ sum μŠ€νƒμ— μΆ”κ°€λ₯Ό ν•΄μ£Όκ³ 
λ§Œμ•½, μž…λ ₯ λ°›λŠ” μˆ«μžκ°€ 0일 경우 sum μŠ€νƒμ— μΆ”κ°€λœ λ§ˆμ§€λ§‰ 숫자λ₯Ό 제거 ν•˜κ³  μž…λ ₯이 λλ‚˜κ³  λ‚˜λ©΄ sum μŠ€νƒμ˜ 총합을 좜λ ₯ν•˜λ©΄ λ˜λŠ” 문제

πŸ€”λ˜λŒμ•„λ³΄κΈ°

	μ²˜μŒμ—λŠ” λ‹¨μˆœν•˜κ²Œ μŠ€νƒλ¬Έμ œλΌκ³  생각을 ν–ˆμ§€λ§Œ 2번째 μž…λ ₯ μ˜ˆμ‹œμ—μ„œ λ¬Έμ œκ°€ 풀리지 μ•Šμ•„ λ„ˆλ¬΄ λ³΅μž‘ν•˜κ²Œ μƒκ°ν–ˆλ‹€.
    	κ²°κ΅­μ—” ν˜Όμžμ„œ 손코딩을 ν•˜λ©΄μ„œ 문제λ₯Ό ν’€μ—ˆλ”λ‹ˆ μ‹œκ°„μ΄ˆκ³Ό μ½”λ“œκ°€ λ˜μ—ˆλ˜ 것, 쑰금만 더 μ‰½κ²Œ 생각해보면 더 λΉ λ₯΄κ²Œ ν’€ 수 μžˆμ„ 것 κ°™μ•„μ„œ 아쉽닀 πŸ₯Ί
profile
Junior BackendEngineer 😎

0개의 λŒ“κΈ€