ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.3 / ๋“ฑ๊ตฃ๊ธธ(C++)

2023. 5. 9. 11:28ยท๐Ÿ–ฅ๏ธ Study Note/Coding Test

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

๋ฌธ์ œ ์„ค๋ช…

๊ณ„์†๋˜๋Š” ํญ์šฐ๋กœ ์ผ๋ถ€ ์ง€์—ญ์ด ๋ฌผ์— ์ž ๊ฒผ์Šต๋‹ˆ๋‹ค. ๋ฌผ์— ์ž ๊ธฐ์ง€ ์•Š์€ ์ง€์—ญ์„ ํ†ตํ•ด ํ•™๊ต๋ฅผ ๊ฐ€๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ง‘์—์„œ ํ•™๊ต๊นŒ์ง€ ๊ฐ€๋Š” ๊ธธ์€ m x n ํฌ๊ธฐ์˜ ๊ฒฉ์ž๋ชจ์–‘์œผ๋กœ ๋‚˜ํƒ€๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ๊ทธ๋ฆผ์€ m = 4, n = 3 ์ธ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์™ผ์ชฝ ์œ„, ์ฆ‰ ์ง‘์ด ์žˆ๋Š” ๊ณณ์˜ ์ขŒํ‘œ๋Š” (1, 1)๋กœ ๋‚˜ํƒ€๋‚ด๊ณ  ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ ์•„๋ž˜, ์ฆ‰ ํ•™๊ต๊ฐ€ ์žˆ๋Š” ๊ณณ์˜ ์ขŒํ‘œ๋Š” (m, n)์œผ๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ฒฉ์ž์˜ ํฌ๊ธฐ m, n๊ณผ ๋ฌผ์ด ์ž ๊ธด ์ง€์—ญ์˜ ์ขŒํ‘œ๋ฅผ ๋‹ด์€ 2์ฐจ์› ๋ฐฐ์—ด puddles์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์˜ค๋ฅธ์ชฝ๊ณผ ์•„๋ž˜์ชฝ์œผ๋กœ๋งŒ ์›€์ง์—ฌ ์ง‘์—์„œ ํ•™๊ต๊นŒ์ง€ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ์ตœ๋‹จ๊ฒฝ๋กœ์˜ ๊ฐœ์ˆ˜๋ฅผ 1,000,000,007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ

  • ๊ฒฉ์ž์˜ ํฌ๊ธฐ m, n์€ 1 ์ด์ƒ 100 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • m๊ณผ n์ด ๋ชจ๋‘ 1์ธ ๊ฒฝ์šฐ๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ฌผ์— ์ž ๊ธด ์ง€์—ญ์€ 0๊ฐœ ์ด์ƒ 10๊ฐœ ์ดํ•˜์ž…๋‹ˆ๋‹ค.
  • ์ง‘๊ณผ ํ•™๊ต๊ฐ€ ๋ฌผ์— ์ž ๊ธด ๊ฒฝ์šฐ๋Š” ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

m n puddles  return
4 3 [[2, 2]] 4

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

๋‚ด ํ•ด๋‹ต

#include <string>
#include <vector>

#define MAX 1000000007

using namespace std;

int solution(int m, int n, vector<vector<int>> puddles) {
    int answer = 0;
    vector<vector<int>> road(n, vector<int>(m, -1));
    
    // ๋ฌผ ์›…๋ฉ์ด๊ฐ€ ์žˆ๋Š” ๊ณณ์€ 0์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.
    for(const auto& p : puddles)
    {
        road[p[1]-1][p[0]-1] = 0;
    }
    
    // ์‹œ์ž‘ ์ง€์ ์„ 1๋กœ ์„ค์ •ํ•œ๋‹ค.
    road[0][0] = 1;
    
    // ๊ฒฝ๋กœ์˜ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.
    for(int y = 0; y < n; ++y)
    {
        for(int x = 0; x < m; ++x)
        {
            // ์•„์ง ๊ฐ€์ง€ ์•Š์€ ๊ธธ์ผ ๊ฒฝ์šฐ
            if(road[y][x] == -1)
            {
                if(x == 0 && y > 0)
                    road[y][x] = road[y-1][x] % MAX;
                
                else if( x > 0 && y == 0)
                    road[y][x] = road[y][x-1] % MAX;
                
                else
                    road[y][x] = (road[y-1][x] + road[y][x-1]) % MAX;
            }
            
        }
    }
    
    answer = road[n-1][m-1];
    return answer;
}

์ค‘ํ•™์ƒ ๋•Œ์ธ๊ฐ€ ๋ฐฐ์› ๋˜ ๊ธธ ์ฐพ๊ธฐ ๊ฒฝ์šฐ์˜ ์ˆ˜ ๊ณต์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ํ’€์—ˆ๋‹ค.

 

์ฒ˜์Œ์— ๊ธธ์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ํ’€์—ˆ๋”๋‹ˆ ์›…๋ฉ์ด ์ฒ˜๋ฆฌ๊ฐ€ ๋ณต์žกํ–ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๊ธธ์„ -1๋กœ ์ดˆ๊ธฐํ™”ํ•˜๊ณ  ์›…๋ฉ์ด๋Š” 0์œผ๋กœ ์„ค์ •ํ•˜๋‹ˆ ์ฒ˜๋ฆฌ๊ฐ€ ํ›จ์”ฌ ๊ฐ„๋‹จํ•ด์กŒ๋‹ค.

์›…๋ฉ์ด๋ฅผ ๋”ฐ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ ๋ณด๋‹ค ๊ธธ๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ํ›จ์”ฌ ์‰ฝ๊ณ ,

์›…๋ฉ์ด๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•ด๋‘๋ฉด ์›…๋ฉ์ด ์นธ์„ ์ง€๋‚˜๋Š” ๊ฒฝ๋กœ๋ฅผ ๋ง‰์•„๋‘” ๊ฒƒ๊ณผ ๊ฐ™์€ ํšจ๊ณผ๊ฐ€ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

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

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.3 - ์ง•๊ฒ€๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ (C++)  (0) 2023.05.12
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.3 / ์ž…๊ตญ์‹ฌ์‚ฌ(C++)  (0) 2023.05.11
[๋ฐฑ์ค€] 2775๋ฒˆ : ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ(C++)  (0) 2023.05.08
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.1 / ์ฒด์œก๋ณต(C++)  (0) 2023.05.07
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.1 / ๋‚˜๋จธ์ง€๊ฐ€ 1์ด ๋˜๋Š” ์ˆ˜ ์ฐพ๊ธฐ(C++)  (0) 2023.05.06
'๐Ÿ–ฅ๏ธ Study Note/Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.3 - ์ง•๊ฒ€๋‹ค๋ฆฌ ๊ฑด๋„ˆ๊ธฐ (C++)
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.3 / ์ž…๊ตญ์‹ฌ์‚ฌ(C++)
  • [๋ฐฑ์ค€] 2775๋ฒˆ : ๋ถ€๋…€ํšŒ์žฅ์ด ๋ ํ…Œ์•ผ(C++)
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.1 / ์ฒด์œก๋ณต(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)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋งํฌ

    • ๊ณต์ง€์‚ฌํ•ญ

    • ์ธ๊ธฐ ๊ธ€

    • ํƒœ๊ทธ

      ์•Œ๊ณ ๋ฆฌ์ฆ˜
      propertyaccess
      unrealengine module
      ๊ฒŒ์ž„ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      OnlineSubsystem
      ๊ฒŒ์ž„ ๊ฐœ๋ฐœ
      cpp
      programmers
      ๊ทธ๋ฆฌ๋””(greedy)
      ๊ทธ๋ž˜ํ”„ ์ˆœํšŒ
      ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
      unrealengine build system
      ํ—ฌํ…Œ์ด์ปค
      ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
      UnrealEngine
      ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
      UnrealEngine5
      ํ”„๋ฃŒ๊ทธ๋ž˜๋จธ์Šค
      ์ตœ๋‹จ ๊ฑฐ๋ฆฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜
      ๊ฒŒ์ž„ ๋ชจ์ž‘
    • ์ตœ๊ทผ ๋Œ“๊ธ€

    • ์ตœ๊ทผ ๊ธ€

    • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
    Beankong_
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค / level.3 / ๋“ฑ๊ตฃ๊ธธ(C++)
    ์ƒ๋‹จ์œผ๋กœ

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