[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๋ฐฉ๋ฌธ ๊ธธ์ด (C++)

2023. 9. 21. 16:56ยท๐Ÿ–ฅ๏ธ Study Note/Coding Test

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

๋ฌธ์ œ ์„ค๋ช…

๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ๋ฅผ 4๊ฐ€์ง€ ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์›€์ง์ด๋ ค ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • U: ์œ„์ชฝ์œผ๋กœ ํ•œ ์นธ ๊ฐ€๊ธฐ
  • D: ์•„๋ž˜์ชฝ์œผ๋กœ ํ•œ ์นธ ๊ฐ€๊ธฐ
  • R: ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ ๊ฐ€๊ธฐ
  • L: ์™ผ์ชฝ์œผ๋กœ ํ•œ ์นธ ๊ฐ€๊ธฐ

์บ๋ฆญํ„ฐ๋Š” ์ขŒํ‘œํ‰๋ฉด์˜ (0, 0) ์œ„์น˜์—์„œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ขŒํ‘œํ‰๋ฉด์˜ ๊ฒฝ๊ณ„๋Š” ์™ผ์ชฝ ์œ„(-5, 5), ์™ผ์ชฝ ์•„๋ž˜(-5, -5), ์˜ค๋ฅธ์ชฝ ์œ„(5, 5), ์˜ค๋ฅธ์ชฝ ์•„๋ž˜(5, -5)๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, "ULURRDLLU"๋กœ ๋ช…๋ นํ–ˆ๋‹ค๋ฉด

  • 1๋ฒˆ ๋ช…๋ น์–ด๋ถ€ํ„ฐ 7๋ฒˆ ๋ช…๋ น์–ด๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›€์ง์ž…๋‹ˆ๋‹ค.

  • 8๋ฒˆ ๋ช…๋ น์–ด๋ถ€ํ„ฐ 9๋ฒˆ ๋ช…๋ น์–ด๊นŒ์ง€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์›€์ง์ž…๋‹ˆ๋‹ค.

์ด๋•Œ, ์šฐ๋ฆฌ๋Š” ๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ๊ฐ€ ์ง€๋‚˜๊ฐ„ ๊ธธ ์ค‘ ์บ๋ฆญํ„ฐ๊ฐ€ ์ฒ˜์Œ ๊ฑธ์–ด๋ณธ ๊ธธ์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์˜ ์˜ˆ์‹œ์—์„œ ๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ๊ฐ€ ์›€์ง์ธ ๊ธธ์ด๋Š” 9์ด์ง€๋งŒ, ์บ๋ฆญํ„ฐ๊ฐ€ ์ฒ˜์Œ ๊ฑธ์–ด๋ณธ ๊ธธ์˜ ๊ธธ์ด๋Š” 7์ด ๋ฉ๋‹ˆ๋‹ค. (8, 9๋ฒˆ ๋ช…๋ น์–ด์—์„œ ์›€์ง์ธ ๊ธธ์€ 2, 3๋ฒˆ ๋ช…๋ น์–ด์—์„œ ์ด๋ฏธ ๊ฑฐ์ณ ๊ฐ„ ๊ธธ์ž…๋‹ˆ๋‹ค)

๋‹จ, ์ขŒํ‘œํ‰๋ฉด์˜ ๊ฒฝ๊ณ„๋ฅผ ๋„˜์–ด๊ฐ€๋Š” ๋ช…๋ น์–ด๋Š” ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, "LULLLLLLU"๋กœ ๋ช…๋ นํ–ˆ๋‹ค๋ฉด

  • 1๋ฒˆ ๋ช…๋ น์–ด๋ถ€ํ„ฐ 6๋ฒˆ ๋ช…๋ น์–ด๋Œ€๋กœ ์›€์ง์ธ ํ›„, 7, 8๋ฒˆ ๋ช…๋ น์–ด๋Š” ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์‹œ 9๋ฒˆ ๋ช…๋ น์–ด๋Œ€๋กœ ์›€์ง์ž…๋‹ˆ๋‹ค.

์ด๋•Œ ์บ๋ฆญํ„ฐ๊ฐ€ ์ฒ˜์Œ ๊ฑธ์–ด๋ณธ ๊ธธ์˜ ๊ธธ์ด๋Š” 7์ด ๋ฉ๋‹ˆ๋‹ค.

๋ช…๋ น์–ด๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜ dirs๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๊ฒŒ์ž„ ์บ๋ฆญํ„ฐ๊ฐ€ ์ฒ˜์Œ ๊ฑธ์–ด๋ณธ ๊ธธ์˜ ๊ธธ์ด๋ฅผ ๊ตฌํ•˜์—ฌ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด ์ฃผ์„ธ์š”.

๋‚ด ํ’€์ด

๊ฐ€๋กœ ๊ธธ๊ณผ ์„ธ๋กœ ๊ธธ ๋ฐฐ์—ด์„ ๋”ฐ๋กœ ๋‘๊ณ  ์บ๋ฆญํ„ฐ๊ฐ€ ์ง€๋‚˜๊ฐ„ ๊ธธ์€ ์ฒดํฌํ•ด์ค€๋‹ค.

์ฃผ์˜ํ•  ์ ์€ ๊ฐ€๋กœ ๊ธธ์˜ ํ–‰๊ณผ ์—ด ํฌ๊ธฐ์™€ ์„ธ๋กœ ๊ธธ์˜ ํ–‰๊ณผ ์—ด ํฌ๊ธฐ๊ฐ€ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

์ด๊ฒƒ๋งŒ ์ฃผ์˜ํ•˜๋ฉด ํ‰์ดํ•œ ์ˆ˜์ค€์˜ ๋ฌธ์ œ์ธ ๊ฒƒ ๊ฐ™๋‹ค.

#include <string>
#include <map>
#include <vector>
#include <memory.h>
#include <iostream>
using namespace std;

int solution(string dirs) {
    int answer = 0;
    
    bool row[11][10];
    for(int i = 0; i < 11; ++i)
        memset(row[i], false, 10 * sizeof(bool));
    bool col[10][11];
    for(int i = 0; i < 10; ++i)
        memset(col[i], false, 11 * sizeof(bool));
    
    map<char, vector<int>> command;
    command['U'] = {0, -1};
    command['D'] = {0, 1};
    command['R'] = {1, 0};
    command['L'] = {-1, 0};
    
    int curX = 5, curY = 5;
    for(const auto& d : dirs)
    {   
        int nextX = curX + command[d][0];
        int nextY = curY + command[d][1];
        
        // ๋ฒ”์œ„ ๋ฐ–์€ ๋ฌด์‹œ
        if(nextX < 0 || nextX > 10 || nextY < 0 || nextY > 10)
            continue;
        
        // ๊ธธ ๋ฐฉ๋ฌธ
        switch(d)
        {
            case 'U':
                if(!col[nextY][nextX])
                {
                    ++answer;
                    col[nextY][nextX] = true;
                }
                break;
            case 'D':
                if(!col[nextY-1][nextX])
                {
                    ++answer;
                    col[nextY-1][nextX] = true;
                }
                break;
            case 'L':  
                if(!row[nextY][nextX])
                {
                    ++answer;
                    row[nextY][nextX] = true;
                }    
                break;
                    
            case 'R':
                if(!row[nextY][nextX-1])
                {
                    ++answer;
                    row[nextY][nextX-1] = true;
                }
                break;
        }
        
        curX = nextX;
        curY = nextY;
    }
    
    return answer;
}
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋‹ค๋‹จ๊ณ„ ์นซ์†” ํŒ๋งค (C++)  (0) 2023.09.26
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์ˆซ์ž ๋ณ€ํ™˜ํ•˜๊ธฐ (C++)  (0) 2023.09.22
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋ณด์„ ์‡ผํ•‘ (C++)  (0) 2023.09.20
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋“ฑ์‚ฐ์ฝ”์Šค ์ •ํ•˜๊ธฐ (C++)  (1) 2023.09.18
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ์–‘๊ณผ ๋Š‘๋Œ€ (C++)  (0) 2023.09.14
'๐Ÿ–ฅ๏ธ Study Note/Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋‹ค๋‹จ๊ณ„ ์นซ์†” ํŒ๋งค (C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์ˆซ์ž ๋ณ€ํ™˜ํ•˜๊ธฐ (C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋ณด์„ ์‡ผํ•‘ (C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.3 - ๋“ฑ์‚ฐ์ฝ”์Šค ์ •ํ•˜๊ธฐ (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)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๋งํฌ

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

    • ์ธ๊ธฐ ๊ธ€

    • ํƒœ๊ทธ

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

    • ์ตœ๊ทผ ๊ธ€

    • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
    Beankong_
    [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๋ฐฉ๋ฌธ ๊ธธ์ด (C++)
    ์ƒ๋‹จ์œผ๋กœ

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