[Programmers] κΈ°λŠ₯개발

Updated:

κΈ°λŠ₯개발

κΈ°λŠ₯개발 을 ν΄λ¦­ν•˜λ©΄ λ°”λ‘œ μ΄λ™ν•œλ‹€.

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ νŒ€μ—μ„œλŠ” κΈ°λŠ₯ κ°œμ„  μž‘μ—…μ„ μˆ˜ν–‰ μ€‘μž…λ‹ˆλ‹€. 각 κΈ°λŠ₯은 진도가 100%일 λ•Œ μ„œλΉ„μŠ€μ— λ°˜μ˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

또, 각 κΈ°λŠ₯의 κ°œλ°œμ†λ„λŠ” λͺ¨λ‘ λ‹€λ₯΄κΈ° λ•Œλ¬Έμ— 뒀에 μžˆλŠ” κΈ°λŠ₯이 μ•žμ— μžˆλŠ” κΈ°λŠ₯보닀 λ¨Όμ € 개발될 수 있고

μ΄λ•Œ 뒀에 μžˆλŠ” κΈ°λŠ₯은 μ•žμ— μžˆλŠ” κΈ°λŠ₯이 배포될 λ•Œ ν•¨κ»˜ λ°°ν¬λ©λ‹ˆλ‹€.

λ¨Όμ € λ°°ν¬λ˜μ–΄μ•Ό ν•˜λŠ” μˆœμ„œλŒ€λ‘œ μž‘μ—…μ˜ 진도가 적힌 μ •μˆ˜ λ°°μ—΄ progresses와

각 μž‘μ—…μ˜ 개발 속도가 적힌 μ •μˆ˜ λ°°μ—΄ speedsκ°€ μ£Όμ–΄μ§ˆ λ•Œ 각 λ°°ν¬λ§ˆλ‹€ λͺ‡ 개의 κΈ°λŠ₯이 λ°°ν¬λ˜λŠ”μ§€λ₯Ό

return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•˜μ„Έμš”.

μ €λ²ˆμ— ν’€μ—ˆλ˜ Level 2 λ¬Έμ œμ™€ λ‹€λ₯΄κ²Œ μ•„μ£Ό μ‰¬μ› λ˜ 문제 !

각 μž‘μ—…μ΄ λ°°ν¬κΉŒμ§€ λ©°μΉ  κ±Έλ¦¬λŠ” 지 κ΅¬ν•œ λ’€ 쑰건에 맞게 계산 ν•΄ μ£Όλ©΄ 됐닀.

from math import ceil


def solution(progresses, speed):
	answer = []
	date = [ceil((100 - p) / s) for p, s in zip(progresses, speed)]

	while date:
		cnt = 1
		check = date.pop(0)

		while True:
			try:
				if check >= date[0]:
					date.pop(0)
					cnt += 1
				else:
					answer.append(cnt)
					break

			except IndexError:
				answer.append(cnt)
				break
	return answer

list comprehension 을 톡해 λ°°ν¬κΉŒμ§€ κ±Έλ¦¬λŠ” 일 수 λ₯Ό μ €μž₯ν•˜κ³ 

맨 μ•žμ—μ„œ λΆ€ν„° 배포λ₯Ό ν•  λ•Œ ν•œ λ²ˆμ— 배포 λ˜λŠ” μž‘μ—… 개수λ₯Ό μ…Œλ‹€.

첫 while 문에 λ“€μ–΄κ°ˆλ•Œ pop을 ν•˜κ³  λ“€μ–΄κ°€κΈ° λ•Œλ¬Έμ— λ§ˆμ§€λ§‰ μ›μ†Œμ—μ„œλŠ” IndexError κ°€ λ°œμƒν•œλ‹€.

κ·Έλž˜μ„œ Try Except 문으둜 μž‘μ•„μ£Όμ—ˆλ‹€.

ꡬ쑰 μƒμœΌλ‘œλŠ” λ¨Όμ € λ“€μ–΄μ˜¨ 데이터가 λ¨Όμ € λ‚˜κ°€λŠ” 큐가 더 μ ν•©ν•˜λ‹€.

ν•˜μ§€λ§Œ list 둜 λ§Œλ“  λ’€ pop(0) 을 ν•˜λ©΄ queue ν•¨μˆ˜μΈ popleft() 와 동일 ν•˜λ‹€.

queue λ₯Ό μ‚¬μš©ν•˜λ €λ©΄ collection 에 μžˆλŠ” queue λ₯Ό import ν•œ ν›„ μ‚¬μš©ν•΄μ•Όν•˜λŠ”λ°..

무슨 차이가 μžˆλŠ”μ§€ μ•Œμ•„λ΄μ•Όκ² λ‹€.


[Python] List VS Queue

μ—„μ²­λ‚œ 차이 발견 !


Categories:

Updated:

Leave a comment