๋ฌธ์
์ด๋ค ๋ฌธ์ฅ์ ํค๋ฅผ ์ด์ฉํ์ฌ ๋ค์๊ณผ ๊ฐ์ด ์ํธํํ๋ ค ํ๋ค. ์ํธํํ๊ธฐ ์ ์ ๋ฌธ์ฅ์ ํ๋ฌธ์ด๋ผ ํ๋ฉฐ, ์ํธํ ๋ ๋ฌธ์ฅ์ ์ํธ๋ฌธ์ด๋ผ๊ณ ํ๋ค. ํค, ํ๋ฌธ, ์ํธ๋ฌธ์ ๋ชจ๋ ์์ด ๋๋ฌธ์๋ก ๋ ๊ณต๋ฐฑ ์๋ ๋ฌธ์ฅ์ด๋ค.
ํค์ ๊ธธ์ด๋ฅผ N์ด๋ผ๊ณ ํ์ ๋, ์ฐ์ ํ๋ฌธ์ N ๊ธ์์ฉ ์๋ผ์ ๋ค์๊ณผ ๊ฐ์ด ๋์ดํ๋ค. ์๋ฅผ ๋ค์ด ํ๋ฌธ์ด MEETMEBYTHEOLDOAKTREENTH ์ด๊ณ , ํค๊ฐ BATBOY๋ผ๊ณ ํด ๋ณด์.
์ ์ผ ์์ค์ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ํค๋ฅผ ๋ค์ ํ ๋ฒ ์ด ๊ฒ์ด๋ค. ์ด์ ์ด ํ๋ ฌ(๋ฐฐ์ด)์ ์ด(Column) ๋จ์๋ก ์ ๋ ฌ์ ํ๋๋ฐ, ์ ๋ ฌ์ ํ๋ ํค์ค์ ํค์ ๋ฌธ์๋ก ํ๋ค. ์ฆ BATBOY๋ฅผ ์ ๋ ฌํ์ฌ ABBOTY์ ๊ฐ์ด ์ ๋ ฌํ๋ ๊ฒ์ด๋ค. B์ ๊ฐ์ด ์ฌ๋ฌ ๋ฒ ๋ํ๋๋ ๋ฌธ์์ ๊ฒฝ์ฐ์๋ ์๋์ ํ๋ ฌ์์ ๋ ์ผ์ชฝ์ ์์๋ ๊ฒ์ ๋จผ์ ์ด๋ค. ์ ๋ ฌ์ ํ ํ๋ ฌ์ ๋ค์๊ณผ ๊ฐ๋ค.
B๋ ๋ ๊ฐ์ง๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ ์ผ์ชฝ์ ์์๋ (B)MBLR์ด ๋จผ์ ๋์๋ค. ์ด์ ์ด์ ๊ฐ์ด ์ ๋ ฌํ ํ๋ ฌ์ ์ด ๋ฒํธ๊ฐ ์์ ๊ฒ ๋จผ์ , ์ด ๋ฒํธ๊ฐ ๊ฐ๋ค๋ฉด ํ ๋ฒํธ๊ฐ ์์ ๊ฒ ์์ผ๋ก ๋์ดํ๋ฉด ์ํธ๋ฌธ์ด ๋๋ค. ์ฆ ์์ ๊ฐ์ ๊ฒฝ์ฐ์ ์ํธ๋ฌธ์ EYDEMBLRTHANMEKTETOEEOTH ๊ฐ ๋๋ค.
ํค์ ์ํธ๋ฌธ์ด ์ฃผ์ด์ก์ ๋, ์ด๋ฅผ ์ด์ฉํ์ฌ ํ๋ฌธ์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํค๊ฐ ์ฃผ์ด์ง๊ณ , ๋์งธ ์ค์ ์ํธ๋ฌธ์ด ์ฃผ์ด์ง๋ค. ํค์ ์ํธ๋ฌธ์ ๋ชจ๋ ์์ด ๋๋ฌธ์๋ก๋ง ๋์ด ์์ผ๋ฉฐ, ์ํธ๋ฌธ์ ๊ธธ์ด๊ฐ ํญ์ ํค์ ๊ธธ์ด์ ๋ฐฐ์๋ผ๊ณ ํ์. ํค์ ๊ธธ์ด๋ 10์ ์ดํ์ด๋ฉฐ ์ํธ๋ฌธ์ ๊ธธ์ด๋ 100์ ์ดํ์ด๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ํ๋ฌธ์ ์ถ๋ ฅํ๋ค.
๋ฐฑ์ค ์ค๋ฒ 3์ธ๋ฐ ์ ์ถํ ์ฌ๋์ด ์ ๋ ์ ์ ๋ฌธ์ ์ด๋ค. ๋ค๋ค ๋ฌธ์ ๊ฐ ๊ธธ์ด์ ์ฝ๋ค๊ฐ ํฌ๊ธฐํ๋?
๊ทผ๋ฐ ์๊ฐ๋ณด๋ค ๋ฌธ์ ์ดํด๋ ์ฝ๋ค. ๊ตฌํ์ด ์ฝ๊ฐ ๋ณต์กํด์ ๊ทธ๋ ์ง ๊ทธ๋ฅ ๋ฌธ์์ด ํ์ฉ ๋ฌธ์ ์ธ๋ฏ
๋ฌธ์ ์ค๋ช ์ ํ๋ฌธ์ ์ํธ๋ฌธ์ผ๋ก ๋ฐ๊พธ๋ ๋ด์ฉ์ด๊ณ , ์๊ตฌ์ฌํญ์ ์ํธ๋ฌธ ์ ๋ ฅ ์ ํ๋ฌธ์ผ๋ก ๋ฐ๊พธ๋ ๋ด์ฉ์ด๋ผ์
์ค๋ช ๊ณผ ๋ฐ๋๋ก ์๊ฐํด์ผํ๋ค.
์ดํด๋ ฅ์ด ์ค์ํ๋ฏ!
๋ ํจ์จ ๊ทธ๋ฐ๊ฑฐ ๋ชจ๋ฅด๋ ์ฝ๋ ํญ์ฃผ๊ธฐ๊ด์ฐจ๋ค
๊ทธ๋ฅ ๋ง ํ๋ค๋ณด๋ ์ผ์ค for๋ฌธ์ด ๋ฑ์ฅํด๋ฒ๋ ธ๋๋ฐ ์ฌ๋ฌ๋ถ์ ๋ ํจ์จ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ์ค ์ ์์ผ์ค๊ฒ๋๋ค..
์ฒ์์ map ์ฐ๋ ค๋ค๊ฐ ์ดํฐ๋ ์ดํฐ ์ ๊ทผ๋๋ฌธ์ ๋ด๋ค๋ฒ๋ฆฌ๊ณ pair๋ก ๋ฐ๊ฟ
1. pair๋ก key ๋ฌธ์๊ฐ์ด๋ ์์ ์ ์ฅํ๊ณ , key๊ธฐ์ค์ผ๋ก ์ ๋ ฌํจ
2. lock์์ key์ฌ์ด์ฆ๋ก ๋๋ ํฌ๊ธฐ (ํ ๋์ด)๋งํผ ์๋ผ์ ์ matrix์ ๋ฃ์ด์ค
3. ์์๋๋ก ์ถ๋ ฅ
๋์ ํ์ด
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
string key = "";
string lock = "";
vector<string> v;
vector<pair<char, int>> p;
char mat[102][102];
cin >> key >> lock;
int key_size = key.length();
int row = lock.length() / key_size;
for (int i = 0; i < key_size; ++i){
p.push_back({key[i], i});
}
sort(p.begin(), p.end()); // key ๋ฌธ์ ๋ฐ ๊ทธ ์์๋ฅผ ์์ผ๋ก ์ ์ฅ ํ ๋ฌธ์๊ธฐ์ค ์ ๋ ฌ
for (int i = 0; i < key_size; ++i) {
for (int j = 0; j < key_size; ++j){
if (p[i].second == j){
string s = lock.substr(i*row, (i+1)*row);
for (int h = 0; h < row; ++h){
mat[h][j] = s[h];
}
}
}
}
for (int i = 0; i < row; ++i){
for (int j = 0; j < key_size; ++j){
cout << mat[i][j];
}
}
return 0;
}
'๐ ์๊ณ ๋ฆฌ์ฆ > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++/BOJ] 1697 : ์จ๋ฐ๊ผญ์ง (BFS) (0) | 2023.02.23 |
---|---|
[C++/BOJ] 14940 : ์ฌ์ด ์ต๋จ๊ฑฐ๋ฆฌ (BFS) / test case (0) | 2023.02.22 |
[C++/BOJ] 2293 : ๋์ 1 (0) | 2023.02.22 |
[C++/๋ฐฑ์ค] 11052 : ์นด๋ ๊ตฌ๋งคํ๊ธฐ (0) | 2023.02.21 |
[C++/๋ฐฑ์ค] 1260 : DFS์ BFS (0) | 2023.02.21 |