๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 15464_The Bovine Shuffle

๋ฟŒ์•ผ._. 2025. 5. 12. 14:41
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/15464)

< The Bovine Shuffle >

 

๋ฌธ์ œ ํ’€์ด 

 

3๋ฒˆ์˜ ์…”ํ”Œ ๊ทœ์น™์— ๋”ฐ๋ผ ์ดˆ๊ธฐ ์ˆœ์„œ๋ฅผ ๊ตฌํ•œ๋‹ค.

 

3๋ฒˆ์˜ ์…”ํ”Œ ํ›„ ์†Œ์˜ ์ˆœ์„œ๊ฐ€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด 

  1 3 4 5 2

 

1๋ฒˆ -> 1๋ฒˆ -> 1๋ฒˆ

3๋ฒˆ -> 4๋ฒˆ -> 5๋ฒˆ

4๋ฒˆ -> 5๋ฒˆ -> 2๋ฒˆ

5๋ฒˆ -> 2๋ฒˆ -> 3๋ฒˆ

2๋ฒˆ -> 3๋ฒˆ -> 4๋ฒˆ

 

์ดˆ๊ธฐ ์ˆœ์„œ๋Š” 1๋ฒˆ, 5๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ, 4๋ฒˆ ์ˆœ์„œ๊ฐ€ ๋œ๋‹ค.

 

my solution (Java)

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class _15464_ { // The Bovine Shuffle

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		StringTokenizer st;

		int N = Integer.parseInt(bf.readLine());

		int arr[] = new int[N];
		st = new StringTokenizer(bf.readLine());
		for (int i = 0; i < N; i++) {
			arr[i] = Integer.parseInt(st.nextToken()) - 1;
		}

		String id[] = new String[N];
		st = new StringTokenizer(bf.readLine());

		for (int i = 0; i < N; i++) {
			id[i] = st.nextToken();
		}

		for (int i = 0; i < N; i++) {
			bw.write(id[arr[arr[arr[i]]]] + "\n");
		}

		bw.flush();
	}
}
๋ณ€์ˆ˜)
N : ์†Œ์˜ ์ˆ˜  
arr : ์„ธ ๋ฒˆ์˜ ์…”ํ”Œ ํ›„ ์ˆœ์„œ
id : ์†Œ ID

 

์†Œ์˜ ์ˆ˜์™€ ์„ธ ๋ฒˆ์˜ ์…”ํ”Œ ํ›„ ์ˆœ์„œ, ์†Œ ID๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ฐ๊ฐ N, arr, id์— ์ €์žฅํ•œ๋‹ค. ์ดˆ๊ธฐ ์ˆœ์„œ๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด id[arr[arr[arr[i]]]]์˜ ์ˆœ์„œ๋Œ€๋กœ ์ถœ๋ ฅํ•œ๋‹ค.