본문 바로가기

BOJ/C++

[BOJ] 4378. 트ㅏㅊ;

* 주어진 문자열을 키보드 상에서 한 칸 씩 왼쪽으로 간 결과로 치환해야 하기 때문에 키보드를 그대로 배열에 저장한다.

* 문자열을 탐색하면서 문자가 탐색되면 그 인덱스 -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