문제 링크입니다: https://www.acmicpc.net/problem/10545
간단한 문자열 처리 문제였습니다.
#include <iostream>
#include <string>
using namespace std;
int alphabet[26] = { 2, 22, 222, 3, 33, 333, 4, 44, 444, 5, 55, 555, 6, 66, 666, 7, 77, 777, 7777, 8, 88, 888, 9, 99, 999, 9999 };
int number[10];
int main(void)
{
ios_base::sync_with_stdio(0);
cin.tie(0);
//바뀐 번호 업데이트
for (int i = 1; i < 10; i++)
{
int temp;
cin >> temp;
number[temp] = i;
}
string s;
cin >> s;
int prev = -1;
for (int i = 0; i < s.length(); i++)
{
int temp = alphabet[s[i] - 'a'];
//이전과 같은 번호 쓸 경우 #
if (prev == temp % 10)
cout << "#";
while (temp)
{
cout << number[temp % 10];
prev = temp % 10;
temp /= 10;
}
}
cout << "\n";
return 0;
}
개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
'알고리즘 > BOJ' 카테고리의 다른 글
백준 2138번 전구와 스위치 (0) | 2018.11.01 |
---|---|
백준 1411번 비슷한 단어 (0) | 2018.10.30 |
백준 1972번 놀라운 문자열 (0) | 2018.10.30 |
백준 2897번 몬스터 트럭 (0) | 2018.10.30 |
백준 2840번 행운의 바퀴 (0) | 2018.10.29 |