[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€]level.2 - 점프와 μˆœκ°„ 이동(C++)

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

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

문제 μ„€λͺ…

OO μ—°κ΅¬μ†ŒλŠ” ν•œ λ²ˆμ— K 칸을 μ•žμœΌλ‘œ μ ν”„ν•˜κ±°λ‚˜, (ν˜„μž¬κΉŒμ§€ 온 거리) x 2 에 ν•΄λ‹Ήν•˜λŠ” μœ„μΉ˜λ‘œ μˆœκ°„μ΄λ™μ„ ν•  수 μžˆλŠ” νŠΉμˆ˜ν•œ κΈ°λŠ₯을 κ°€μ§„ 아이언 슈트λ₯Ό κ°œλ°œν•˜μ—¬ νŒλ§€ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. 이 아이언 μŠˆνŠΈλŠ” κ±΄μ „μ§€λ‘œ μž‘λ™λ˜λŠ”λ°, μˆœκ°„μ΄λ™μ„ ν•˜λ©΄ 건전지 μ‚¬μš©λŸ‰μ΄ 쀄지 μ•Šμ§€λ§Œ, μ•žμœΌλ‘œ K 칸을 μ ν”„ν•˜λ©΄ K 만큼의 건전지 μ‚¬μš©λŸ‰μ΄ λ“­λ‹ˆλ‹€. κ·ΈλŸ¬λ―€λ‘œ 아이언 슈트λ₯Ό μ°©μš©ν•˜κ³  이동할 λ•ŒλŠ” μˆœκ°„ 이동을 ν•˜λŠ” 것이 더 νš¨μœ¨μ μž…λ‹ˆλ‹€. 아이언 슈트 κ΅¬λ§€μžλŠ” 아이언 슈트λ₯Ό μ°©μš©ν•˜κ³  거리가 N 만큼 λ–¨μ–΄μ Έ μžˆλŠ” μž₯μ†Œλ‘œ κ°€λ €κ³  ν•©λ‹ˆλ‹€. 단, 건전지 μ‚¬μš©λŸ‰μ„ 쀄이기 μœ„ν•΄ μ ν”„λ‘œ μ΄λ™ν•˜λŠ” 것은 μ΅œμ†Œλ‘œ ν•˜λ €κ³  ν•©λ‹ˆλ‹€. 아이언 슈트 κ΅¬λ§€μžκ°€ μ΄λ™ν•˜λ €λŠ” 거리 N이 μ£Όμ–΄μ‘Œμ„ λ•Œ, μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 건전지 μ‚¬μš©λŸ‰μ˜ μ΅œμ†Ÿκ°’μ„ returnν•˜λŠ” solution ν•¨μˆ˜λ₯Ό λ§Œλ“€μ–΄ μ£Όμ„Έμš”.

예λ₯Ό λ“€μ–΄ 거리가 5만큼 λ–¨μ–΄μ Έ μžˆλŠ” μž₯μ†Œλ‘œ κ°€λ €κ³  ν•©λ‹ˆλ‹€.

아이언 슈트λ₯Ό μž…κ³  거리가 5만큼 λ–¨μ–΄μ Έ μžˆλŠ” μž₯μ†Œλ‘œ 갈 수 μžˆλŠ” 경우의 μˆ˜λŠ” μ—¬λŸ¬ κ°€μ§€μž…λ‹ˆλ‹€.

  • 처음 μœ„μΉ˜ 0 μ—μ„œ 5 칸을 μ•žμœΌλ‘œ μ ν”„ν•˜λ©΄ λ°”λ‘œ λ„μ°©ν•˜μ§€λ§Œ, 건전지 μ‚¬μš©λŸ‰μ΄ 5 만큼 λ“­λ‹ˆλ‹€.
  • 처음 μœ„μΉ˜ 0 μ—μ„œ 2 칸을 μ•žμœΌλ‘œ μ ν”„ν•œ λ‹€μŒ μˆœκ°„μ΄λ™ ν•˜λ©΄ (ν˜„μž¬κΉŒμ§€ 온 거리 : 2) x 2에 ν•΄λ‹Ήν•˜λŠ” μœ„μΉ˜λ‘œ 이동할 수 μžˆμœΌλ―€λ‘œ μœ„μΉ˜ 4둜 μ΄λ™ν•©λ‹ˆλ‹€. μ΄λ•Œ 1 칸을 μ•žμœΌλ‘œ μ ν”„ν•˜λ©΄ λ„μ°©ν•˜λ―€λ‘œ 건전지 μ‚¬μš©λŸ‰μ΄ 3 만큼 λ“­λ‹ˆλ‹€.
  • 처음 μœ„μΉ˜ 0 μ—μ„œ 1 칸을 μ•žμœΌλ‘œ μ ν”„ν•œ λ‹€μŒ μˆœκ°„μ΄λ™ ν•˜λ©΄ (ν˜„μž¬κΉŒμ§€ 온 거리 : 1) x 2에 ν•΄λ‹Ήν•˜λŠ” μœ„μΉ˜λ‘œ 이동할 수 μžˆμœΌλ―€λ‘œ μœ„μΉ˜ 2둜 μ΄λ™λ©λ‹ˆλ‹€. μ΄λ•Œ λ‹€μ‹œ μˆœκ°„μ΄λ™ ν•˜λ©΄ (ν˜„μž¬κΉŒμ§€ 온 거리 : 2) x 2 만큼 이동할 수 μžˆμœΌλ―€λ‘œ μœ„μΉ˜ 4둜 μ΄λ™ν•©λ‹ˆλ‹€. μ΄λ•Œ 1 칸을 μ•žμœΌλ‘œ μ ν”„ν•˜λ©΄ λ„μ°©ν•˜λ―€λ‘œ 건전지 μ‚¬μš©λŸ‰μ΄ 2 만큼 λ“­λ‹ˆλ‹€.

μœ„μ˜ 3κ°€μ§€ 경우 거리가 5만큼 λ–¨μ–΄μ Έ μžˆλŠ” μž₯μ†Œλ‘œ κ°€κΈ° μœ„ν•΄μ„œ 3번째 κ²½μš°κ°€ 건전지 μ‚¬μš©λŸ‰μ΄ κ°€μž₯ μ μœΌλ―€λ‘œ 닡은 2κ°€ λ©λ‹ˆλ‹€.

μ œν•œ 사항

  • 숫자 N: 1 이상 10μ–΅ μ΄ν•˜μ˜ μžμ—°μˆ˜
  • 숫자 K: 1 μ΄μƒμ˜ μžμ—°μˆ˜

μž…μΆœλ ₯ 예

N result
5 2
6 2
5000 5

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

μž…μΆœλ ₯ 예 #1

μœ„μ˜ μ˜ˆμ‹œμ™€ κ°™μŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2

처음 μœ„μΉ˜ 0 μ—μ„œ 1 칸을 μ•žμœΌλ‘œ μ ν”„ν•œ λ‹€μŒ μˆœκ°„μ΄λ™ ν•˜λ©΄ (ν˜„μž¬κΉŒμ§€ 온 거리 : 1) x 2에 ν•΄λ‹Ήν•˜λŠ” μœ„μΉ˜λ‘œ 이동할 수 μžˆμœΌλ―€λ‘œ μœ„μΉ˜ 2둜 μ΄λ™ν•©λ‹ˆλ‹€. μ΄λ•Œ 1 칸을 μ•žμœΌλ‘œ μ ν”„ν•˜λ©΄ μœ„μΉ˜3으둜 μ΄λ™ν•©λ‹ˆλ‹€. μ΄λ•Œ λ‹€μ‹œ μˆœκ°„μ΄λ™ ν•˜λ©΄ (ν˜„μž¬κΉŒμ§€ 온 거리 : 3) x 2 이동할 수 μžˆμœΌλ―€λ‘œ μœ„μΉ˜ 6에 λ„μ°©ν•©λ‹ˆλ‹€. 이 κ²½μš°κ°€ 건전지 μ‚¬μš©λŸ‰μ΄ κ°€μž₯ μ μœΌλ―€λ‘œ 2λ₯Ό λ°˜ν™˜ν•΄μ£Όλ©΄ λ©λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #3

μœ„μ™€ 같은 λ°©μ‹μœΌλ‘œ ν•©λ‹ˆλ‹€.

λ‚΄ 풀이

남은 칸이 ν™€μˆ˜κ°œλ©΄ 점프λ₯Ό ν•˜κ³ ,

남은 칸이 짝수개면 μˆœκ°„μ΄λ™μ„ ν•œλ‹€.

#include <iostream>
using namespace std;

int solution(int n)
{
    int ans = 0;
    while(n > 0)
    { 
        // 점프
        if(n % 2 == 1)
        {
            --n;
            ++ans;
        }
        
        // μˆœκ°„μ΄λ™
        n /= 2;
    }
    return ans;
}

 

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

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

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

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