개발자 HOON
πŸ› HOON DEVLog
개발자 HOON
전체 방문자
였늘
μ–΄μ œ
  • 😎 전체 μΉ΄ν…Œκ³ λ¦¬ (137)
    • πŸ“ μ‹ μž… 인터뷰 μ€€λΉ„ (7)
    • πŸ¦” μ·¨μ—…μ€€λΉ„ 기둝 (7)
    • β˜• μžλ°” : JAVA (5)
    • 🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS (80)
    • 🌱 λ°±μ—”λ“œ : Backend (13)
    • πŸ§ͺ 컴퓨터과학 : CS (11)
    • πŸ—‚ λ°μ΄ν„°λ² μ΄μŠ€ : DB (1)
    • πŸƒ‍♂️ DEVLOG (8)
    • βš™οΈ Trouble Shooting (5)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • GitHub
  • Resume

곡지사항

인기 κΈ€

졜근 κΈ€

ν‹°μŠ€ν† λ¦¬

hELLO Β· Designed By μ •μƒμš°.
개발자 HOON

πŸ› HOON DEVLog

🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] μ˜ˆμƒ λŒ€μ§„ν‘œ (level2, python)

2022. 9. 9. 00:25

문제 μ„€λͺ…

 

β–³β–³ κ²Œμž„λŒ€νšŒκ°€ κ°œμ΅œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 λŒ€νšŒλŠ” Nλͺ…이 μ°Έκ°€ν•˜κ³ , ν† λ„ˆλ¨ΌνŠΈ ν˜•μ‹μœΌλ‘œ μ§„ν–‰λ©λ‹ˆλ‹€.

Nλͺ…μ˜ μ°Έκ°€μžλŠ” 각각 1λΆ€ν„° Nλ²ˆμ„ μ°¨λ‘€λŒ€λ‘œ λ°°μ •λ°›μŠ΅λ‹ˆλ‹€. 그리고, 1번↔2번, 3번↔4번, ... , N-1번↔N번의 μ°Έκ°€μžλΌλ¦¬ κ²Œμž„μ„ μ§„ν–‰ν•©λ‹ˆλ‹€. 각 κ²Œμž„μ—μ„œ 이긴 μ‚¬λžŒμ€ λ‹€μŒ λΌμš΄λ“œμ— μ§„μΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ΄λ•Œ, λ‹€μŒ λΌμš΄λ“œμ— μ§„μΆœν•  μ°Έκ°€μžμ˜ λ²ˆν˜ΈλŠ” λ‹€μ‹œ 1λ²ˆλΆ€ν„° N/2λ²ˆμ„ μ°¨λ‘€λŒ€λ‘œ λ°°μ •λ°›μŠ΅λ‹ˆλ‹€. λ§Œμ•½ 1번↔2번 끼리 κ²¨λ£¨λŠ” κ²Œμž„μ—μ„œ 2번이 μŠΉλ¦¬ν–ˆλ‹€λ©΄ λ‹€μŒ λΌμš΄λ“œμ—μ„œ 1λ²ˆμ„ λΆ€μ—¬λ°›κ³ , 3번↔4λ²ˆμ—μ„œ κ²¨λ£¨λŠ” κ²Œμž„μ—μ„œ 3번이 μŠΉλ¦¬ν–ˆλ‹€λ©΄ λ‹€μŒ λΌμš΄λ“œμ—μ„œ 2λ²ˆμ„ λΆ€μ—¬λ°›κ²Œ λ©λ‹ˆλ‹€. κ²Œμž„μ€ μ΅œμ’… ν•œ λͺ…이 남을 λ•ŒκΉŒμ§€ μ§„ν–‰λ©λ‹ˆλ‹€.

 

μ΄λ•Œ, 처음 λΌμš΄λ“œμ—μ„œ Aλ²ˆμ„ κ°€μ§„ μ°Έκ°€μžλŠ” 경쟁자둜 μƒκ°ν•˜λŠ” B번 μ°Έκ°€μžμ™€ λͺ‡ 번째 λΌμš΄λ“œμ—μ„œ λ§Œλ‚˜λŠ”μ§€ κΆκΈˆν•΄μ‘ŒμŠ΅λ‹ˆλ‹€. κ²Œμž„ μ°Έκ°€μž 수 N, μ°Έκ°€μž 번호 A, 경쟁자 번호 Bκ°€ ν•¨μˆ˜ solution의 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, 처음 λΌμš΄λ“œμ—μ„œ Aλ²ˆμ„ κ°€μ§„ μ°Έκ°€μžλŠ” 경쟁자둜 μƒκ°ν•˜λŠ” B번 μ°Έκ°€μžμ™€ λͺ‡ 번째 λΌμš΄λ“œμ—μ„œ λ§Œλ‚˜λŠ”μ§€ return ν•˜λŠ” solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄ μ£Όμ„Έμš”. λ‹¨, A번 μ°Έκ°€μžμ™€ B번 μ°Έκ°€μžλŠ” μ„œλ‘œ λΆ™κ²Œ 되기 μ „κΉŒμ§€ 항상 이긴닀고 κ°€μ •ν•©λ‹ˆλ‹€.


μ œν•œμ‚¬ν•­
  • N : 21 μ΄μƒ 220 μ΄ν•˜μΈ μžμ—°μˆ˜ (2의 μ§€μˆ˜ 승으둜 μ£Όμ–΄μ§€λ―€λ‘œ λΆ€μ „μŠΉμ€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.)
  • A, B : N μ΄ν•˜μΈ μžμ—°μˆ˜ (단, A ≠ B μž…λ‹ˆλ‹€.)

 


μž…μΆœλ ₯ 예
n a b answer
8 4 7 3

μž…μΆœλ ₯ 예 μ„€λͺ…

 

μž…μΆœλ ₯ 예 #1


첫 번째 λΌμš΄λ“œμ—μ„œ 4번 μ°Έκ°€μžλŠ” 3번 μ°Έκ°€μžμ™€ λΆ™κ²Œ 되고, 7번 μ°Έκ°€μžλŠ” 8번 μ°Έκ°€μžμ™€ λΆ™κ²Œ λ©λ‹ˆλ‹€. 항상 이긴닀고 κ°€μ •ν–ˆμœΌλ―€λ‘œ 4번 μ°Έκ°€μžλŠ” λ‹€μŒ λΌμš΄λ“œμ—μ„œ 2번이 되고, 7번 μ°Έκ°€μžλŠ” 4번이 λ©λ‹ˆλ‹€. 두 번째 λΌμš΄λ“œμ—μ„œ 2λ²ˆμ€ 1번과 λΆ™κ²Œ 되고, 4λ²ˆμ€ 3번과 λΆ™κ²Œ λ©λ‹ˆλ‹€. 항상 이긴닀고 κ°€μ •ν–ˆμœΌλ―€λ‘œ 2λ²ˆμ€ λ‹€μŒ λΌμš΄λ“œμ—μ„œ 1번이 되고, 4λ²ˆμ€ 2번이 λ©λ‹ˆλ‹€. μ„Έ 번째 λΌμš΄λ“œμ—μ„œ 1번과 2번으둜 두 μ°Έκ°€μžκ°€ λΆ™κ²Œ λ˜λ―€λ‘œ 3을 return ν•˜λ©΄ λ©λ‹ˆλ‹€.

 


 

풀이 μ½”λ“œ

def solution(n,a,b):
    answer = 0
    while a != b:
        a = (a+1) // 2
        b = (b+1) // 2
        answer += 1
    return answer

 

λ‹¨μˆœ κ΅¬ν˜„ 정도라고 봐도 될 λ“― ν•˜λ‹€.

1, 2번 쀑 우승자 → 1번

3, 4번 쀑 우승자 → 2번 ... 의 νŒ¨ν„΄μ„ κ°€μ§€κ³  μžˆλ‹€. 

 

파이썬의 // 연산을 ν•˜λ©΄ 1 // 2 → 0, 2 // 2 → 1 μ΄λ―€λ‘œ 연산을 νŽΈν•˜κ²Œ ν•˜κΈ° μœ„ν•΄ 1을 λ”ν•œ ν›„ λ‚˜λˆ μ£ΌλŠ” μ‹μœΌλ‘œ κ΅¬ν˜„ν–ˆλ‹€.

 

 

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ 동일쑰건 (μƒˆμ°½μ—΄λ¦Ό)

'🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] [1μ°¨]μΊμ‹œ (level2, python)  (0) 2022.09.09
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 졜고의 μ§‘ν•© (level3, python)  (0) 2022.09.09
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 멀리 λ›°κΈ° (level2, python)  (0) 2022.09.09
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] N개의 μ΅œμ†Œκ³΅λ°°μˆ˜ (level2, python)  (0) 2022.09.09
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] ꡬλͺ…λ³΄νŠΈ (level2, python)  (0) 2022.09.08
    '🐍 μ½”λ”©ν…ŒμŠ€νŠΈ λŒ€λΉ„ : PS' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] [1μ°¨]μΊμ‹œ (level2, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 졜고의 μ§‘ν•© (level3, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] 멀리 λ›°κΈ° (level2, python)
    • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€] N개의 μ΅œμ†Œκ³΅λ°°μˆ˜ (level2, python)
    개발자 HOON
    개발자 HOON
    쒋은 λ°±μ—”λ“œ μ—”μ§€λ‹ˆμ–΄κ°€ 되기 μœ„ν•œ 기둝을 λͺ¨μ•˜μŠ΅λ‹ˆλ‹€. # μ£Όλ‹ˆμ–΄ # λ°±μ—”λ“œ # 개발자

    ν‹°μŠ€ν† λ¦¬νˆ΄λ°”