일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 네트워크
- LeetCode
- swea
- language
- BOJ
- OS
- 문제풀이
- algogritim
- db
- 재테크/투자
- 백준
- 프로그래머스
- 데이터베이스
- 법의학
- c++
- algorithm
- data structure
- SW Expert Academy
- Database
- 감상문
- 독서
- Programmers
- 운영체제
- network
- D2
- cs
- D3
- 알고리즘
- Computer Science
- 자료구조
Archives
- Today
- Total
선택은 나의 것
[BOJ 백준] 4378번 트ㅏㅊ; 본문
문제
BOJ 4378 : https://www.acmicpc.net/problem/4378
4378번: 트ㅏㅊ;
문제 가끔, 그러나 때때로, 우리들은 키보드에서 양손을 오른쪽으로 한 칸씩 이동한 상태로 두고 타자를 치는 경우가 있다. 즉, "ACMICPC.NET"을 위와 같은 방법으로 치게 되면 "SV,OV[V/MRY"이라는 이��
www.acmicpc.net
접근
먼저 키보드의 행 별로 배열을 만들어 키보드의 모양을 저장해 주자.
다음으로 getline을 이용해 EOF를 만날 때까지 입력을 받는다. EOF처리 방법에 대해선 [C++] EOF(End-Of-File) 처리 방법 글을 참고하길 바란다.
입력받은 문자열을 이루고 있는 각 문자들에 대해 키보드에서의 위치를 찾은 다음 그 위치에서 한 칸 왼쪽에 위치하는 문자로 바꿔서 출력해 준다.
코드
// algorithm study
// BOJ_4378_트ㅏㅊ;
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
vector<string> Keyboard = {"`1234567890-=", "QWERTYUIOP[]\\", "ASDFGHJKL;'", "ZXCVBNM,./"};
string s;
while (getline(cin, s)) {
for (char c : s) {
if (c == ' ')
cout << " ";
else {
int chk = 0;
for (int i = 0; i < Keyboard.size(); i++) {
for (int j = 0; j < Keyboard[i].size(); j++) {
if (c == Keyboard[i][j]) {
cout << Keyboard[i][j - 1];
chk = 1;
break;
}
}
if (chk == 1)
break;
}
}
}
cout << "\n";
}
return 0;
}
'☽ Algorithm > BOJ' 카테고리의 다른 글
[BOJ 백준] 2210번 숫자판 점프 (0) | 2020.05.20 |
---|---|
[BOJ 백준] 10951번 A+B - 4 (0) | 2020.05.19 |
[BOJ 백준] 2169번 로봇 조종하기 (0) | 2020.05.15 |
[BOJ 백준] 2304번 창고 다각형 (0) | 2020.05.13 |
[BOJ 백준] 13565번 침투 (0) | 2020.05.13 |
Comments