[programmers] μ€ν¨μ¨ - 2019 KAKAO BLIND RECRUITMENT
μ½λ© ν μ€νΈ μ°μ΅ - 2019 KAKAO BLIND RECRUITMENT
<μ€ν¨μ¨>
λ¬Έμ μ€λͺ
μνΌ κ²μ κ°λ°μ μ€λ 리λ ν° κ³ λ―Όμ λΉ μ‘λ€. κ·Έλ κ° λ§λ νλ μ¦ μ€μ²μ±μ΄ λμ±κ³΅μ κ±°λμ§λ§, μμ¦ μ κ· μ¬μ©μμ μκ° κΈκ°ν κ²μ΄λ€. μμΈμ μ κ· μ¬μ©μμ κΈ°μ‘΄ μ¬μ©μ μ¬μ΄μ μ€ν μ΄μ§ μ°¨μ΄κ° λ무 ν° κ²μ΄ λ¬Έμ μλ€.
μ΄ λ¬Έμ λ₯Ό μ΄λ»κ² ν κΉ κ³ λ―Ό ν κ·Έλ λ λμ μΌλ‘ κ²μ μκ°μ λλ €μ λμ΄λλ₯Ό μ‘°μ νκΈ°λ‘ νλ€. μμ μνΌ κ°λ°μλΌ λλΆλΆμ λ‘μ§μ μ½κ² ꡬννμ§λ§, μ€ν¨μ¨μ ꡬνλ λΆλΆμμ μκΈ°μ λΉ μ§κ³ λ§μλ€. μ€λ 리λ₯Ό μν΄ μ€ν¨μ¨μ ꡬνλ μ½λλ₯Ό μμ±νλΌ.
- μ€ν¨μ¨μ λ€μκ³Ό κ°μ΄ μ μνλ€.
- μ€ν μ΄μ§μ λλ¬νμΌλ μμ§ ν΄λ¦¬μ΄νμ§ λͺ»ν νλ μ΄μ΄μ μ / μ€ν μ΄μ§μ λλ¬ν νλ μ΄μ΄ μ
μ 체 μ€ν μ΄μ§μ κ°μ N, κ²μμ μ΄μ©νλ μ¬μ©μκ° νμ¬ λ©μΆ°μλ μ€ν μ΄μ§μ λ²νΈκ° λ΄κΈ΄ λ°°μ΄ stagesκ° λ§€κ°λ³μλ‘ μ£Όμ΄μ§ λ, μ€ν¨μ¨μ΄ λμ μ€ν μ΄μ§λΆν° λ΄λ¦Όμ°¨μμΌλ‘ μ€ν μ΄μ§μ λ²νΈκ° λ΄κ²¨μλ λ°°μ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±νλΌ.
μ ν μ¬ν
- μ€ν μ΄μ§μ κ°μ Nμ 1 μ΄μ 500 μ΄νμ μμ°μμ΄λ€.
- stagesμ κΈΈμ΄λ 1 μ΄μ 200,000 μ΄νμ΄λ€.
- stagesμλ 1 μ΄μ N + 1 μ΄νμ μμ°μκ° λ΄κ²¨μλ€.
- κ° μμ°μλ μ¬μ©μκ° νμ¬ λμ μ€μΈ μ€ν μ΄μ§μ λ²νΈλ₯Ό λνλΈλ€.
- λ¨, N + 1 μ λ§μ§λ§ μ€ν μ΄μ§(N λ²μ§Έ μ€ν μ΄μ§)κΉμ§ ν΄λ¦¬μ΄ ν μ¬μ©μλ₯Ό λνλΈλ€.
- λ§μ½ μ€ν¨μ¨μ΄ κ°μ μ€ν μ΄μ§κ° μλ€λ©΄ μμ λ²νΈμ μ€ν μ΄μ§κ° λ¨Όμ μ€λλ‘ νλ©΄ λλ€.
- μ€ν μ΄μ§μ λλ¬ν μ μ κ° μλ κ²½μ° ν΄λΉ μ€ν μ΄μ§μ μ€ν¨μ¨μ 0μΌλ‘ μ μνλ€.
λ¬Έμ νμ΄
- my solution
def solution(N, stages):
answer = []
temp=[0]*N
count=len(stages) #1λ¨κ³λ μ λΆ μλμ€μ΄λ―λ‘ μ²μμ μ 체 μΈμ
j=0
for i in temp:
x=stages.count(j+1)
if(x==0 or count==0): #0μΌλ‘ λλκΈ° λ°©μ§
temp[j]=0
else:
temp[j]=x/count
j+=1
count-=x #μλ¨κ³ ν΄λ¦¬μ΄νμ§ λͺ»ν μ¬λ λΉΌκΈ°
while(temp.count(-1)!=len(temp)): #λ΄λ¦Όμ°¨μμΌλ‘ μ€ν
μ΄μ§ μ λ ¬
answer.append(temp.index(max(temp))+1)
temp[temp.index(max(temp))]=-1
return answer
N: μ€ν μ΄μ§ κ°μ
stages: μ¬μ©μλ€μ΄ νμ¬ λμ μ€μΈ μ€ν μ΄μ§μ λ²νΈ
temp: μ€ν¨μ¨μ λνλ΄λ 리μ€νΈ
answer: μ€ν¨μ¨μ΄ λμ μ€ν μ΄μ§λΆν° λ΄λ¦Όμ°¨μμΌλ‘ μ€ν μ΄μ§μ λ²νΈκ° λ΄κ²¨μλ λ°°μ΄
1) 1λ¨κ³λ μ λΆ μλν κ²μ΄λ―λ‘ μ 체 μΈμμΌλ‘ setting
2) μ€ν¨μ¨μ κ³μ°νκΈ° μν΄ μμ§ ν΄λ¦¬μ΄νμ§ λͺ»ν νλ μ΄μ΄μ μλ₯Ό μΈμ΄ xμ μ μ₯
2-1) λμ μ€μΈ μ¬μ©μλ€μ μ or μμ§ ν΄λ¦¬μ΄νμ§ λͺ»ν νλ μ΄μ΄μ μκ° 0μ΄λ©΄ μ€ν¨μ¨ 0μΌλ‘ μ μ₯
2-2) 0μ΄ μλ κ²½μ° λμ μ€μΈ (ν΄λ¦¬μ΄νμ§ λͺ»ν νλ μ΄μ΄μ μ)/(μ€ν μ΄μ§μ λλ¬ν νλ μ΄μ΄ μ) κ³μ°
2-3) λ€μ μ€ν μ΄μ§μ λλ¬ν νλ μ΄μ΄μλ μ λ¨κ³λ₯Ό ν΄λ¦¬μ΄νμ§ λͺ»ν μ¬λμ λΉΌμ€λ€
3) 리μ€νΈμ κ°μ΄ μ λΆ λ€ -1μ΄ μλ κ²½μ° κ³μ λ°λ³΅
3-1) μ΅λκ°μ μΈλ±μ€λ₯Ό answerμ μ μ₯
3-2) κ·Έ μΈλ±μ€μ κ°μ -1λ‘ μ μ₯
μ²μμ λ°νμ μλ¬κ° λ°μνμμ§λ§ 0μΌλ‘ λλκΈ°λ₯Ό λ°©μ§νλ ifλ¬Έμ μΆκ°νμ¬ ν΄κ²°νμλ€.
μκ° μ΄κ³Όκ° λ°μνλ κ²μ μ€ν μ΄μ§μ λλ¬ν νλ μ΄μ΄ μλ₯Ό ꡬνλ λ°©λ²μ λ€λ₯΄κ² ꡬννμ¬ ν΄κ²°νμλ€.
μΆμ²: νλ‘κ·Έλλ¨Έμ€ μ½λ© ν μ€νΈ μ°μ΅, https://programmers.co.kr/learn/challenges