[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - μ˜ˆμƒ λŒ€μ§„ν‘œ(C++)

2023. 6. 28. 01:12Β·πŸ–₯️ Study Note/Coding Test

https://school.programmers.co.kr/learn/courses/30/lessons/12985#

문제 μ„€λͺ…

β–³β–³ κ²Œμž„λŒ€νšŒκ°€ κ°œμ΅œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 이 λŒ€νšŒλŠ” 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 : 2 μ΄μƒ 2 μ΄ν•˜μΈ μžμ—°μˆ˜ (2의 μ§€μˆ˜ 승으둜 μ£Όμ–΄μ§€λ―€λ‘œ λΆ€μ „μŠΉμ€ λ°œμƒν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.)20
  • 1
  • 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 ν•˜λ©΄ λ©λ‹ˆλ‹€.

λ‚΄ 풀이

#include <iostream>

using namespace std;

int solution(int n, int a, int b)
{
    int answer = 0;
    
    for(int i = 0; i < n; ++i)
    {
        a = a/2 + a%2;
        b = b/2 + b%2;
        ++answer;
        
        if(a==b)
          break;  
    }

    return answer;
}

μ €μž‘μžν‘œμ‹œ λΉ„μ˜λ¦¬ λ³€κ²½κΈˆμ§€ (μƒˆμ°½μ—΄λ¦Ό)

'πŸ–₯️ Study Note > Coding Test' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - 점프와 μˆœκ°„ 이동(C++)  (0) 2023.06.30
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - 과제 μ§„ν–‰ν•˜κΈ°(C++)  (0) 2023.06.29
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - κ΄‘λ¬Ό 캐기(C++)  (0) 2023.06.26
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - ν–‰λ ¬μ˜ κ³±μ…ˆ(C++)  (0) 2023.06.25
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.3 - 멀리 λ›°κΈ°(C++)  (0) 2023.06.23
'πŸ–₯️ Study Note/Coding Test' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - 점프와 μˆœκ°„ 이동(C++)
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - 과제 μ§„ν–‰ν•˜κΈ°(C++)
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - κ΄‘λ¬Ό 캐기(C++)
  • [ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - ν–‰λ ¬μ˜ κ³±μ…ˆ(C++)
Beankong_
Beankong_
μ£Όλ‹ˆμ–΄ ν΄λΌμ΄μ–ΈνŠΈ ν”„λ‘œκ·Έλž˜λ¨Έ 곡뢀 기둝
  • Beankong_
    Beankong's Devlog
    Beankong_
  • 전체
    였늘
    μ–΄μ œ
    • 전체 κΈ€ (141)
      • β›… Daily (0)
      • πŸ–₯️ Study Note (135)
        • C++ (0)
        • Unreal Engine (5)
        • Coding Test (123)
        • Design Patteren (5)
        • VCS (Git..) (1)
        • Server (1)
      • 🧭 Devlog (6)
        • μ˜€λ‹΅λ…ΈνŠΈ (2)
        • UE5 GameLift Server Test Project (1)
        • TIL (3)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.3
Beankong_
[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - μ˜ˆμƒ λŒ€μ§„ν‘œ(C++)
μƒλ‹¨μœΌλ‘œ

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