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

[๋ฐฑ์ค€,c++] 22858๋ฒˆ - ์›์ƒ ๋ณต๊ตฌ(small)

by ์•ˆ์ฃผํ˜• 2022. 9. 28.

๋ฌธ์ œ

 

22858๋ฒˆ: ์›์ƒ ๋ณต๊ตฌ (small)

์ˆ˜๊ฐ€ ์ ํ˜€์žˆ๋Š” $P_1, P_2, ..., P_N$ $N$๊ฐœ์˜ ์นด๋“œ๊ฐ€ ์žˆ๋‹ค. 1๋ถ€ํ„ฐ N๊นŒ์ง€ ์ˆ˜๊ฐ€ ํ•˜๋‚˜์”ฉ ์กด์žฌํ•˜๋Š” $D_1, D_2, ... , D_i , ... D_N$ ๊ฐ€ ์žˆ๋‹ค. ์ด๋•Œ $D_i$๋Š” $P_{D_i}$ ๊ฐ’์„ $i$ ๋ฒˆ์งธ๋กœ ๊ฐ€์ง€๊ณ  ์˜ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ์ด๋Ÿฌํ•œ

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
#include <memory.h>

using namespace std;

int D[10001], S[10001], v[10001];
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    int N, K; cin>>N>>K;
    for(int i=1; i<=N; i++) cin>>S[i];
    for(int i=1; i<=N; i++) cin>>D[i];
    
    
    while(K--){
        for(int i=1; i<=N; i++){
            v[D[i]] = S[i];
        }
        memcpy(S,v,sizeof(S));
    }
    for(int i=1; i<=N; i++) cout<< v[i] << ' ';
}

 

ํ’€์ด

๋ฌธ์ œ๋ฅผ ์ž˜ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ P[1 4 5 3 2] ๊ฐ€ ์ ํžŒ ์นด๋“œ๊ฐ€ D ์ˆœ์„œ๋Œ€๋กœ ์…”ํ”Œ์„ ์ง„ํ–‰ํ–ˆ์„ ๋•Œ S[3 5 1 4 2]๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๋Š” ๋ฌธ์ œ์ธ๋ฐ ์กฐ๊ธˆ ๋” ํ’€์–ด์„œ ์ด์•ผ๊ธฐํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • P = 1 ์ผ๋•Œ D = 4์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ S๋ฐฐ์—ด์˜ 4๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • P = 4์ผ๋•Œ D = 3์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ S๋ฐฐ์—ด์˜ 3๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • P = 5์ผ๋•Œ D = 1์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ S๋ฐฐ์—ด์˜ 1๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • P = 3์ผ๋•Œ D = 2์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ S๋ฐฐ์—ด์˜ 2๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.
  • P = 2์ผ๋•Œ D = 5์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ S๋ฐฐ์—ด์˜ 5๋ฒˆ์งธ ์ธ๋ฑ์Šค์— ๋„ฃ์œผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ์œ„ ๋กœ์ง์„ ๊ธฐ์ค€์œผ๋กœ ๋‹จ์ˆœ ๊ตฌํ˜„์„ ํ•ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€