[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์ˆซ์ž ๋ณ€ํ™˜ํ•˜๊ธฐ (C++)

2023. 9. 22. 17:01ยท๐Ÿ–ฅ๏ธ Study Note/Coding Test

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

๋ฌธ์ œ ์„ค๋ช…

์ž์—ฐ์ˆ˜ x๋ฅผ y๋กœ ๋ณ€ํ™˜ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์‚ฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • x์— n์„ ๋”ํ•ฉ๋‹ˆ๋‹ค
  • x์— 2๋ฅผ ๊ณฑํ•ฉ๋‹ˆ๋‹ค.
  • x์— 3์„ ๊ณฑํ•ฉ๋‹ˆ๋‹ค.

์ž์—ฐ์ˆ˜ x, y, n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, x๋ฅผ y๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ตœ์†Œ ์—ฐ์‚ฐ ํšŸ์ˆ˜๋ฅผ returnํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”. ์ด๋•Œ x๋ฅผ y๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†๋‹ค๋ฉด -1์„ return ํ•ด์ฃผ์„ธ์š”.

๋‚ด ํ’€์ด

์ฒซ๋ฒˆ์งธ ํ’€์ด

dfs

#include <string>
#include <vector>

using namespace std;
int Answer = -1;

void dfs(int x, int y, int n, int count)
{
    if(x == y)
    {
        if(Answer == -1 || Answer > count)
            Answer = count;
        return;
    }
    else if(x > y)
        return;
    
    dfs(x+n, y, n, count+1);
    dfs(x*2, y, n, count+1);
    dfs(x*3, y, n, count+1);
}

int solution(int x, int y, int n) {
    dfs(x, y, n, 0);
    return Answer;
}

์‹œ๊ฐ„์ดˆ๊ณผ,,,

 

๋‘๋ฒˆ์งธ ํ’€์ด

dp

๋ชฉํ‘œ ์ˆซ์ž Y ๋ถ€ํ„ฐ ์‹œ์ž‘ ์ˆซ์ž X๊นŒ์ง€ ์ด๋™ํ•˜๋ฉด์„œ ์ตœ์†Œ ์ด๋™ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.

#include <string>
#include <vector>
#include <memory.h>

using namespace std;

int solution(int x, int y, int n) {
    int dp[1'000'001];
    memset(dp, 1'000'001, 1'000'001 * sizeof(int));
    
    dp[y] = 0;
    for(int i = y; i > x; --i)
    {
        if(i-n > 0)
            dp[i-n] = min(dp[i-n], dp[i]+1); 
    
        if(i%2 == 0)
            dp[i/2] = min(dp[i/2], dp[i]+1);
        
        if(i%3 == 0)
            dp[i/3] = min(dp[i/3], dp[i]+1);
    }
    
    if(dp[x] >= 1'000'001)
        dp[x] = -1;
    
    return dp[x];
}

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ–ฅ๏ธ Study Note > Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๊ฐ€์žฅ ํฐ ์ •์‚ฌ๊ฐํ˜• ์ฐพ๊ธฐ(C++)  (0) 2023.09.28
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋‹ค๋‹จ๊ณ„ ์นซ์†” ํŒ๋งค (C++)  (0) 2023.09.26
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๋ฐฉ๋ฌธ ๊ธธ์ด (C++)  (0) 2023.09.21
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋ณด์„ ์‡ผํ•‘ (C++)  (0) 2023.09.20
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋“ฑ์‚ฐ์ฝ”์Šค ์ •ํ•˜๊ธฐ (C++)  (1) 2023.09.18
'๐Ÿ–ฅ๏ธ Study Note/Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๊ฐ€์žฅ ํฐ ์ •์‚ฌ๊ฐํ˜• ์ฐพ๊ธฐ(C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋‹ค๋‹จ๊ณ„ ์นซ์†” ํŒ๋งค (C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๋ฐฉ๋ฌธ ๊ธธ์ด (C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋ณด์„ ์‡ผํ•‘ (C++)
Beankong_
Beankong_
์ฃผ๋‹ˆ์–ด ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ณต๋ถ€ ๊ธฐ๋ก
  • Beankong_
    Beankong's Devlog
    Beankong_
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด ๊ธ€ (141)
      • โ›… Daily (0)
      • ๐Ÿ–ฅ๏ธ Study Note (135)
        • 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++)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”