μ½”λ”©ν…ŒμŠ€νŠΈ μ—°μŠ΅/ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€_2022

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] Lv1. 콜라츠 μΆ”μΈ‘

초보보 ν˜œμ§„ 2022. 10. 5. 10:23
728x90

문제 μ„€λͺ…

1937λ…„ Collatzλž€ μ‚¬λžŒμ— μ˜ν•΄ 제기된 이 좔츑은, μ£Όμ–΄μ§„ μˆ˜κ°€ 1이 될 λ•ŒκΉŒμ§€ λ‹€μŒ μž‘μ—…μ„ λ°˜λ³΅ν•˜λ©΄, λͺ¨λ“  수λ₯Ό 1둜 λ§Œλ“€ 수 μžˆλ‹€λŠ” μΆ”μΈ‘μž…λ‹ˆλ‹€. μž‘μ—…μ€ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

1-1. μž…λ ₯된 μˆ˜κ°€ 짝수라면 2둜 λ‚˜λˆ•λ‹ˆλ‹€. 
1-2. μž…λ ₯된 μˆ˜κ°€ ν™€μˆ˜λΌλ©΄ 3을 κ³±ν•˜κ³  1을 λ”ν•©λ‹ˆλ‹€. 
2. 결과둜 λ‚˜μ˜¨ μˆ˜μ— 같은 μž‘μ—…μ„ 1이 될 λ•ŒκΉŒμ§€ λ°˜λ³΅ν•©λ‹ˆλ‹€. 

예λ₯Ό λ“€μ–΄, μ£Όμ–΄μ§„ μˆ˜κ°€ 6이라면 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 이 λ˜μ–΄ 총 8번 λ§Œμ— 1이 λ©λ‹ˆλ‹€. μœ„ μž‘μ—…μ„ λͺ‡ λ²ˆμ΄λ‚˜ λ°˜λ³΅ν•΄μ•Ό ν•˜λŠ”μ§€ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄ μ£Όμ„Έμš”. 단, μ£Όμ–΄μ§„ μˆ˜κ°€ 1인 κ²½μš°μ—λŠ” 0을, μž‘μ—…μ„ 500번 λ°˜λ³΅ν•  λ•ŒκΉŒμ§€ 1이 λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄ –1을 λ°˜ν™˜ν•΄ μ£Όμ„Έμš”.

 

μ œν•œ 사항
  • μž…λ ₯된 수, num은 1 이상 8,000,000 미만인 μ •μˆ˜μž…λ‹ˆλ‹€.
μž…μΆœλ ₯ 예
n                                                                                                                                   result
6 8
16 4
626331 -1
μž…μΆœλ ₯ 예 μ„€λͺ…

μž…μΆœλ ₯ 예 #1
문제의 μ„€λͺ…κ³Ό κ°™μŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2
16 → 8 → 4 → 2 → 1 이 λ˜μ–΄ 총 4번 λ§Œμ— 1이 λ©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #3
626331은 500λ²ˆμ„ μ‹œλ„ν•΄λ„ 1이 λ˜μ§€ λͺ»ν•˜λ―€λ‘œ -1을 리턴해야 ν•©λ‹ˆλ‹€.


β€» 곡지 - 2022λ…„ 6μ›” 10일 λ‹€μŒκ³Ό 같이 지문이 일뢀 μˆ˜μ •λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

  • μ£Όμ–΄μ§„ μˆ˜κ°€ 1인 κ²½μš°μ— λŒ€ν•œ 쑰건 μΆ”κ°€

 

 

λ‚˜μ˜ 풀이

μ•„.. μ˜ˆμ „μ—λ„ 이 문제 ν’€κ³  계속 num κ°’ 626331 을 λ„£μ—ˆλŠ”λ° ν…ŒμŠ€νŠΈ κ²°κ³Όκ°€ -1 이 μ•„λ‹ˆλΌ 488이 λ‚˜μ™€μ„œ μ™œ 이래!! 이랬던 κ²½ν—˜μ΄ μžˆμ—ˆμœΌλ©΄μ„œ.. 또 같은 μ‹€μˆ˜λ₯Ό λ°˜λ³΅ν•˜κ³  μžˆμ—ˆλ‹€.. 이러면 μ’€ 생각을 해봐야 ν•˜λŠ”λ° λ‹΅λ‹΅ν•˜λ‹ˆκΉŒ 또 찾아버렸닀.. 

쑰금만 더 κ³ λ―Ό ν•΄λ΄€μœΌλ©΄ λ‹΅ 금방 μ°Ύμ•˜μ„ν…λ°.. 휴 

 

λ¬Έμ œλŠ” int μ˜€λ‹€. 

num이 626331 정도가 λ˜λ‹ˆκΉŒ * 3 ν•˜κ³  +1 ν•˜λŠ” κ³Όμ •μ—μ„œ int의 λ²”μœ„λ₯Ό λ„˜μ–΄λ²„λ¦¬λŠ”λ° int에 κ·Έ 값을 λ‹΄μœΌλ €λ‹ˆκΉŒ ν•œκ³„κ°€ μžˆμ–΄μ„œ answer 값을 μ œλŒ€λ‘œ λͺ»κ΅¬ν–ˆλ˜ 것이닀. 

κ·Έλž˜μ„œ νŒŒλΌλ―Έν„° κ°’ μ €λ²ˆμ— 변경해도 λμœΌλ‹ˆκΉŒ long으둜 λ³€ν™˜ν•΄μ„œ 문제λ₯Ό λ‹€μ‹œ ν‘Έλ‹ˆκΉŒ μ œλŒ€λ‘œ ν…ŒμŠ€νŠΈκ°€ 됐닀.. 휴 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90