๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/2149)
< ์ํธ ํด๋ >
๋ฌธ์ ํ์ด
๋ง์ฝ ์ฃผ์ด์ง ํค๊ฐ cedfba๋ผ๋ฉด ์ํธ๋ฌธ์ ๊ตฌํ ๋ ์ ๋ ฌ๋ ํค ๊ฐ์ abcdef๊ฐ ๋๋ฉฐ ์ํธ๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉํฅ์ผ๋ก ์ฑ์ด๋ค.
์๋ ํค ๊ฐ์ผ ๋ ๊ฐ์ ์ฐพ์ ๋ค์ ์์๋ก ์ฝ๋๋ค.
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.Arrays;
public class _2149_ { // ์ํธ ํด๋
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
String key = bf.readLine();
String str = bf.readLine();
char arr[][] = new char[(str.length() / key.length()) + 1][key.length()];
char keyArr[] = new char[key.length()];
char ori[] = new char[key.length()];
for (int i = 0; i < key.length(); i++) {
ori[i] = key.charAt(i);
keyArr[i] = key.charAt(i);
}
int idx = 0;
for (int j = 0; j < key.length(); j++) {
for (int i = 1; i <= (str.length() / key.length()); i++) {
arr[i][j] = str.charAt(idx++);
}
}
Arrays.sort(keyArr);
for (int i = 0; i < key.length(); i++) {
arr[0][i] = keyArr[i];
}
boolean visited[] = new boolean[key.length()];
for(int j=1; j<arr.length; j++) {
for (int k = 0; k < key.length(); k++) {
for (int i = 0; i < key.length(); i++) {
if (!visited[i] && ori[k] == arr[0][i]) {
visited[i] = true;
bw.write(arr[j][i]);
break;
}
}
}
for(int k=0; k<key.length(); k++) {
visited[k]=false;
}
}
bw.flush();
}
}
๋ณ์)
key, str : ํค, ์ํธ๋ฌธ
arr : ๋ฐฐ์ด
keyArr, ori : ์ ๋ ฌ๋ ํค ๊ฐ, ํค ๊ฐ
visited : ๋ฐฉ๋ฌธ ์ฌ๋ถ
ํค์ ์ํธ๋ฌธ์ ์ ๋ ฅ๋ฐ๋๋ค. arr ๋ฐฐ์ด์ ์ด ๋ฐฉํฅ์ผ๋ก ๊ฐ์ ์ ์ฅํ๋ค. arr ๋ฐฐ์ด์ 0๋ฒ์งธ ํ์๋ key๊ฐ์ ์ ๋ ฌํ ๊ฐ์ ์์๋๋ก ์ ์ฅํ๋ค. ์๋ key ๊ฐ์ ์ํํ๋ฉฐ arr์ 0๋ฒ์งธ ํ์ ๊ฐ๊ณผ ์ผ์นํ๋ ๊ฐ์ ์ฐพ์ ์ถ๋ ฅํ๋ค.
'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1455_๋ค์ง๊ธฐ II (0) | 2024.04.16 |
---|---|
[Baekjoon] 2697_๋ค์์ ๊ตฌํ๊ธฐ (0) | 2024.04.15 |
[Baekjoon] 12927_๋ฐฐ์ ์ค์์น (0) | 2024.04.11 |
[Baekjoon] 3060_์์ฌ์์ด ๋ผ์ง (1) | 2024.04.10 |
[Baekjoon] 28471_Wํค๊ฐ ๋น ์ง ์ฑ์์ด (0) | 2024.04.09 |