๋ฌธ์
์ฝ๋
#include <iostream>
using namespace std;
int map[3][10];
string top = "qwertyuiop";
string middle = "asdfghjkl";
string bottom = "zxcvbnm";
struct Info{
int r;
int c;
char hand;
};
Info l, r;
Info find_coor(char key){
int _r = 0, _c = 0;
char hand;
for(int i=0; i<top.length(); i++){
if(top[i] == key){
_r = 0, _c = i;
if(i<=4) hand = 'l';
else hand = 'r';
}
}
for(int i=0; i<middle.length(); i++){
if(middle[i] == key){
_r = 1, _c = i;
if(i <= 4) hand = 'l';
else hand = 'r';
}
}
for(int i=0; i<bottom.length(); i++){
if(bottom[i] == key){
_r = 2, _c = i;
if(i <= 3) hand = 'l';
else hand = 'r';
}
}
return {_r, _c, hand};
}
int find_dist(char key){
Info key_coor = find_coor(key);
int dist = 0;
if(key_coor.hand == 'l'){
dist = abs(l.r - key_coor.r) + abs(l.c - key_coor.c);
l.r = key_coor.r;
l.c = key_coor.c;
}
if(key_coor.hand == 'r'){
dist = abs(r.r - key_coor.r) + abs(r.c - key_coor.c);
r.r = key_coor.r;
r.c = key_coor.c;
}
return dist;
}
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
char left, right; cin>>left>>right;
string s; cin>>s;
l = find_coor(left);
r = find_coor(right);
int ans = 0;
for(char key: s) ans += find_dist(key);
cout<<ans+s.length();
}
ํ์ด
์ฒ์์ ์ฑ์ฐ๋ ํ๊ธ ์์ ์ชฝ ์ํ์ ์ผ์ ๊ฒ์ง ์๊ฐ๋ฝ์ผ๋ก ์
๋ ฅํ๊ณ , ํ๊ธ ๋ชจ์ ์ชฝ ์ํ์ ์ค๋ฅธ์ ๊ฒ์ง ์๊ฐ๋ฝ์ผ๋ก ์
๋ ฅํ๋ค. ๋ผ๋ ์กฐ๊ฑด์ ์ ๋๋ก ์ฝ์ง ๋ชปํด์ ์ผ์๊ณผ ์ค๋ฅธ์ ๋ ๋ค ๋๋ฅผ ์ ์๋ค๊ณ ๊ฐ์ ํ๊ณ ๋ ์ค ๊ฐ๊น์ด ์๊ฐ๋ฝ์ ๋๋ฅด๋ ๋ฐฉ๋ฒ์ผ๋ก ํผ์ ํ๋ฒ ๋ ๊ผฌ์์ ์๋ชป ๊ตฌํํ์ต๋๋ค ใ
ใ
..
ํค๋ณด๋์ ์ ค์, ์ค๊ฐ, ์ ค ํ๋จ์ ํด๋นํ๋ ๋ฌธ์์ด์ ์ ์ธํ๊ณ ๊ฐ๊ฐ์ ๋ฌธ์๊ฐ ํด๋น ๋ฌธ์์ด์ ํฌํจํ ๋ ๋ฐฐ์ด์ ์์น๋ฅผ ๋ฐํํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ์ต๋๋ค.
'Algorithm ๐ง๐ปโ๐ป > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค,c++] 22856๋ฒ - ํธ๋ฆฌ ์ํ (0) | 2022.09.18 |
---|---|
[๋ฐฑ์ค,c++] 16719๋ฒ - ZOAC (0) | 2022.09.16 |
[๋ฐฑ์ค,c++] 17276๋ฒ - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ (0) | 2022.09.15 |
[๋ฐฑ์ค,c++] 20164๋ฒ - ํ์ ํ๋ฆฌ ํธ์ (0) | 2022.09.15 |
[๋ฐฑ์ค,c++] 20546๋ฒ - ๊ธฐ์ ์ ๋งค๋งค๋ฒ (0) | 2022.09.15 |
[๋ฐฑ์ค,c++] 2615๋ฒ - ์ค๋ชฉ (0) | 2022.09.15 |
๋๊ธ