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

2023. 5. 23. 23:29ยท๐Ÿ–ฅ๏ธ Study Note/Coding Test

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

๋‚ด ํ•ด๋‹ต

#include <string>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;

int ctoi(char c)
{
	return int(c - '0');
}

vector<int> solution(vector<string> maps)
{
	vector<int>          answer;
	vector<vector<bool>> visit(maps.size(), vector<bool>(maps[0].size(), false));
	int                  dx[4] = {1, -1, 0, 0};
	int                  dy[4] = {0, 0, 1, -1};

	queue<pair<int, int>> q;

	for (int y = 0; y < maps.size(); ++y)
    {
	    for (int x = 0; x < maps[0].size(); ++x)
        {
	        if (!visit[y][x] && 'X' != maps[y][x])
		        q.push({x,y});
            
            int weight = 0;
	        while (!q.empty())
	        {
		        int x = q.front().first;
		        int y = q.front().second;
		        q.pop();

		        if (visit[y][x])
			        continue;
                
                weight += ctoi(maps[y][x]);
		        visit[y][x] = true;

		        for (int i = 0; i < 4; ++i)
		        {
			        int nx = x + dx[i];
			        int ny = y + dy[i];

			        if (nx >= 0 && nx < maps[0].size() && ny >= 0 && ny < maps.size())
			        {
				        if (!visit[ny][nx] && 'X' != maps[ny][nx])
				        {
					        q.push({nx, ny});
				        }
			        }
		        }
	        }
            
            if(weight != 0)
                answer.push_back(weight);
        }
    }
    
    if(answer.empty())
        answer.push_back(-1);
    else
	    sort(answer.begin(), answer.end());

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

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

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.3 - ์ตœ๊ณ ์˜ ์ง‘ํ•ฉ(C++)  (0) 2023.05.31
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.2 - ๊ทค ๊ณ ๋ฅด๊ธฐ(C++)  (0) 2023.05.30
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.2 - ๋•…๋”ฐ๋จน๊ธฐ(C++)  (0) 2023.05.22
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.3 - ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค(C++)  (1) 2023.05.19
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.3 - ์„ ์ž… ์„ ์ถœ ์Šค์ผ€์ค„๋ง (C++)  (0) 2023.05.18
'๐Ÿ–ฅ๏ธ Study Note/Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.3 - ์ตœ๊ณ ์˜ ์ง‘ํ•ฉ(C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.2 - ๊ทค ๊ณ ๋ฅด๊ธฐ(C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.2 - ๋•…๋”ฐ๋จน๊ธฐ(C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] level.3 - ๊ฒฝ์ฃผ๋กœ ๊ฑด์„ค(C++)
Beankong_
Beankong_
์ฃผ๋‹ˆ์–ด ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ณต๋ถ€ ๊ธฐ๋ก
  • Beankong_
    Beankong's Devlog
    Beankong_
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด ๊ธ€ (141) N
      • โ›… Daily (0)
      • ๐Ÿ–ฅ๏ธ Study Note (135) N
        • Unreal Engine (5) N
        • 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++)
์ƒ๋‹จ์œผ๋กœ

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