* 주어진 문자열을 키보드 상에서 한 칸 씩 왼쪽으로 간 결과로 치환해야 하기 때문에 키보드를 그대로 배열에 저장한다.
* 문자열을 탐색하면서 문자가 탐색되면 그 인덱스 -1의 결과를 출력한다.
* 인풋은 여러 줄을 나눠서 들어오고, 중간에 공백이 있을 수 있으므로 getline()으로 입력받는다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #include <iostream> #include <vector> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); string keyBoard[4] = { "`1234567890-=" , "QWERTYUIOP[]\\" , "ASDFGHJKL;\'" , "ZXCVBNM,./" }; string input; while (getline(cin, input)) { string output = "" ; for ( char c : input) { bool chk = 0; if (c == ' ' ) cout << c; else { for ( int i = 0; i < 4; i++) { for ( int j = 0; j < keyBoard[i].size(); j++) { if (keyBoard[i][j] == c) { cout << keyBoard[i][j - 1]; chk = 1; break ; } } if (chk) break ; } } } cout << '\n' ; } return 0; } |
'BOJ > C++' 카테고리의 다른 글
[BOJ] 16957. 체스판 위의 공 (0) | 2020.04.25 |
---|---|
[BOJ] 17298. 오큰수 (0) | 2020.04.25 |
[BOJ] 9019. DSLR (0) | 2020.04.25 |
[BOJ] 17085. 십자가 2개 놓기 (0) | 2020.04.20 |
[BOJ] 16939. 2X2X2 큐브 (0) | 2020.04.20 |