๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 1405๋ฒˆ - ๋ฏธ์นœ ๋กœ๋ด‡

by ์•ˆ์ฃผํ˜• 2021. 11. 22.

๋ฌธ์ œ

 

1405๋ฒˆ: ๋ฏธ์นœ ๋กœ๋ด‡

์ฒซ์งธ ์ค„์— N, ๋™์ชฝ์œผ๋กœ ์ด๋™ํ•  ํ™•๋ฅ , ์„œ์ชฝ์œผ๋กœ ์ด๋™ํ•  ํ™•๋ฅ , ๋‚จ์ชฝ์œผ๋กœ ์ด๋™ํ•  ํ™•๋ฅ , ๋ถ์ชฝ์œผ๋กœ ์ด๋™ํ•  ํ™•๋ฅ ์ด ์ฃผ์–ด์ง„๋‹ค. N์€ 14๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž์—ฐ์ˆ˜์ด๊ณ ,  ๋ชจ๋“  ํ™•๋ฅ ์€ 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์ž

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
using namespace std;

int N,a,b,c,d;

int map[31][31];
int visited[31][31];

int dx[4]={1,-1,0,0};
int dy[4]={0,0,1,-1};

double percent[4],out=0.0;



void dfs(int depth, int x, int y,double ans){
    visited[x][y]=1;
    
    if(depth==N){
        out += ans;
        return;
    }
    
    for(int i=0; i<4; i++){
        if(percent[i]==0) continue;
        int nx = x+dx[i];
        int ny = y+dy[i];
        if(!visited[nx][ny]&&percent[i]!=0){
            visited[nx][ny]=1;
            dfs(depth+1,nx,ny,ans*percent[i]);
            visited[nx][ny]=0;
        }
    }
}
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cin>>N;
    for(int i=0; i<4; i++){
        double inp; cin>>inp;
        percent[i] = inp/100.0;
    }
    
    dfs(0,14,14,1); //  ์‹œ์ž‘์ ์ด 14,14 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    
    cout.precision(11);
    cout << fixed<<out;
}

 

ํ’€์ด

์ฒ˜์Œ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๋Š”๋ฐ ์กฐ๊ธˆ ์‹œ๊ฐ„์ด ๊ฑธ๋ ธ๋‹ค. ๋ฌธ์ œ์—์„œ ๋งํ•˜๋Š” ์ด๋™ ๊ฒฝ๋กœ๊ฐ€ ๋‹จ์ˆœ ํ•˜๋‹ค ๋ผ๋Š” ์กฐ๊ฑด์€ ๋™์ผํ•œ ๊ณณ์„ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š๋Š” ๊ฒฝ๋กœ๋ฅผ ๋งํ•œ๋‹ค. ์ฆ‰ EE๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋‘๋ฒˆ๊ฐ€์„œ ๊ฒน์น˜์ง€ ์•Š๋Š” ๊ธธ์ด๋ผ ๋‹จ์ˆœํ•˜๊ณ , EW๋Š” ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ”๋‹ค๊ฐ€ ์™ผ์ชฝ์œผ๋กœ ์˜ค๋ฉด ํ•œ๋ฒˆ ๋ฐฉ๋ฌธํ–ˆ๋˜ ๊ณณ์„ ๊ฒน์น˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœํ•˜์ง€ ์•Š์€ ๊ฒฝ๋กœ๊ฐ€ ๋œ๋‹ค.

inp: 2 25 25 25 25

์œ„์™€ ๊ฐ™์€ ์ž…๋ ฅ์ด ๋“ค์–ด์˜ฌ๋•Œ ๊ฐˆ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋Š”

  • EE:  0.25*0.25
  • EW // ๋‹จ์ˆœํ•˜์ง€ ์•Š์€ ๊ฒฝ๋กœ
  • ES: 0.25*0.25 =0.0625
  • EN: 0.25*0.25
  • WW: 0.25*0.25
  • WE // ๋‹จ์ˆœํ•˜์ง€ ์•Š์€ ๊ฒฝ๋กœ
  • WS: 0.25*0.25
  • WN: 0.25*0.25
  • SS: 0.25*0.25
  • SE:  0.25*0.25
  • SW: 0.25*0.25
  • SN // ๋‹จ์ˆœํ•˜์ง€ ์•Š์€ ๊ฒฝ๋กœ
  • NN: 0.25*0.25
  • NE:  0.25*0.25
  • NW: 0.25*0.25
  • NS // ๋‹จ์ˆœํ•˜์ง€ ์•Š์€ ๊ฒฝ๋กœ

์œ„์™€ ๊ฐ™์€๋ฐ, (0.25*0.25)*3*4=0.75๋ผ๋Š” output์ด ๋‚˜์˜จ๋‹ค. 

์ฒ˜์Œ์— ํ™•๋ฅ ์ธ๋ฐ 0.25+0.25 ๋กœ ๋”ํ•˜๋Š” ๋กœ์ง์„ ์งœ์„œ ํ‹€๋ ธ๋‹ค; 

 

์ถ”๊ฐ€๋กœ ํƒ์ƒ‰์˜ ์‹œ์ž‘์ ์€ ์ค‘์•™๊ฐ’์ธ (14,14) ์ด๋‹ค.. (0,0)์œผ๋กœ ์‹œ์ž‘ํ•ด์„œ ๊ณ„์† ํ‹€๋ ธ์—ˆ๋‹ค.. ๋ฌธ์ œ๋ฅผ ์ž˜ ์ฝ์ž..

๋Œ“๊ธ€