algorithm

๋ฐฑ์ค€ 1987

rkawk 2024. 6. 12. 21:16

๋ฌธ์ œ

๋”๋ณด๊ธฐ
๋”๋ณด๊ธฐ

์„ธ๋กœ ๐‘…์นธ, ๊ฐ€๋กœ ๐ถ์นธ์œผ๋กœ ๋œ ํ‘œ ๋ชจ์–‘์˜ ๋ณด๋“œ๊ฐ€ ์žˆ๋‹ค. ๋ณด๋“œ์˜ ๊ฐ ์นธ์—๋Š” ๋Œ€๋ฌธ์ž ์•ŒํŒŒ๋ฒณ์ด ํ•˜๋‚˜์”ฉ ์ ํ˜€ ์žˆ๊ณ , ์ขŒ์ธก ์ƒ๋‹จ ์นธ (1ํ–‰ 1์—ด) ์—๋Š” ๋ง์ด ๋†“์—ฌ ์žˆ๋‹ค.

๋ง์€ ์ƒํ•˜์ขŒ์šฐ๋กœ ์ธ์ ‘ํ•œ ๋„ค ์นธ ์ค‘์˜ ํ•œ ์นธ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ƒˆ๋กœ ์ด๋™ํ•œ ์นธ์— ์ ํ˜€ ์žˆ๋Š” ์•ŒํŒŒ๋ฒณ์€ ์ง€๊ธˆ๊นŒ์ง€ ์ง€๋‚˜์˜จ ๋ชจ๋“  ์นธ์— ์ ํ˜€ ์žˆ๋Š” ์•ŒํŒŒ๋ฒณ๊ณผ๋Š” ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค. ์ฆ‰, ๊ฐ™์€ ์•ŒํŒŒ๋ฒณ์ด ์ ํžŒ ์นธ์„ ๋‘ ๋ฒˆ ์ง€๋‚  ์ˆ˜ ์—†๋‹ค.

์ขŒ์ธก ์ƒ๋‹จ์—์„œ ์‹œ์ž‘ํ•ด์„œ, ๋ง์ด ์ตœ๋Œ€ํ•œ ๋ช‡ ์นธ์„ ์ง€๋‚  ์ˆ˜ ์žˆ๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ๋ง์ด ์ง€๋‚˜๋Š” ์นธ์€ ์ขŒ์ธก ์ƒ๋‹จ์˜ ์นธ๋„ ํฌํ•จ๋œ๋‹ค.

ํ’€์ด

์ „ํ˜•์ ์ธ ๋ฐฑํŠธ๋ž˜ํ‚น๋ฌธ์ œ์ด๋‹ค.

(0,0) ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ์•ŒํŒŒ๋ฒณ์ด ๋‚˜์˜ฌ ๊ฒฝ์šฐ ํ•œ์นธ์”ฉ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋กœ ์žฌ๊ท€์˜ ๊นŠ์ด์— ๋”ฐ๋ฅธ ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ฃผ์˜ํ•ด์•ผ๋˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

์ •ํ™•ํ•œ ์ฆ๋ช…์€ ๋ชปํ•˜๊ฒ ์ง€๋งŒ, ์•ŒํŒŒ๋ฒณ์˜ ๊ฐœ์ˆ˜๋Š” ์ด 26๊ฐœ์ด๋ฏ€๋กœ ์ตœ๋Œ€ 26์นธ์„ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ์นธ์„ ํ•œ๋ฒˆ์”ฉ๋งŒ ๋ฐฉ๋ฌธํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ O(R * C)๋กœ ์ƒ๊ฐํ•˜๊ณ  ๊ตฌํ˜„ํ–ˆ๋‹ค.

 

 

 

์ฝ”๋“œ

#include <iostream>
#include <string>
using namespace std;

int R, C, dx[4]={0,1,0,-1}, dy[4]={1,0,-1,0}, ans=0;
string board[21];

void func(int i, int j, int a, int* alpha) {
    for(int dir=0; dir<4; dir++) {
        int nx = i + dx[dir];
        int ny = j + dy[dir];
        if(nx<0||nx>=R||ny<0||ny>=C) continue;
        if(alpha[board[nx][ny]-'A']) continue;
        alpha[board[nx][ny]-'A'] = 1;
        func(nx, ny, a+1, alpha);
        alpha[board[nx][ny]-'A'] = 0;
    }
    ans = max(ans, a);
}

int main() {
    cin>>R>>C;
    for(int i=0; i<R; i++)
        cin>>board[i];
    int alpha[26] = {0};
    alpha[board[0][0] - 'A'] = 1;
    func(0,0,1,alpha);
    cout<<ans;
}

'algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ฐฑ์ค€ 2151  (0) 2024.06.18
๋ฐฑ์ค€ 28325  (0) 2024.06.13
Codeforces Round 938 (Div. 3)  (0) 2024.05.02
๋ฐฑ์ค€ 1630  (0) 2024.04.08
BOJ 3197  (0) 2024.03.24