728x90
반응형
생에 첫 대회의 첫 문제였다!!
물론 대회를 준비한 것도 아니고 어? 대회 하네? 해서 풀어본 문제이지만... 아무래도 의미가 있는 문제인 것 같다.
첫 문제다보니 생각보다 쉬운 문제가 나왔다. 일렬로 있는 키보드 자판에 시작점을 입력받고, ILOVEYEONSEI를 치는데에 이동한 키보드 자판 수를 구하는 것이다.
아스키 코드이기 때문에, 현재 위치에서 다음에 갈 문자열의 위치를 빼면 되는 문제였다.
알고리즘 설계
- 현재 자리를 입력받은 문자로 설정하고, 갈 자리를 문자열의 i번째 문자로 설정한다.
- 현재 문자 - 갈 문자의 절댓값을 answer에 더해준다.
- 현재 자리를 방금 간 문자, 갈 자리를 다음 문자로 설정해주고 2를 반복한다. i또한 1씩 더해준다.
코드
#include <bits/stdc++.h>
using namespace std;
int main()
{
string str = "ILOVEYONSEI";
char start;
int result = 0;
cin >> start;
for (int i = 0; i < str.size(); i++)
{
result += abs(start - str[i]);
// 현재 자리 갱신
start = str[i];
}
cout << result;
}
이런 유형의 문제는 처음이라 재미있었다.
다음에도 대회를 한다면 준비해서 더 좋은 결과를 받아볼 거다!!!
728x90
반응형
'알고리즘 문제풀이 > 문자열' 카테고리의 다른 글
[백준][C++] 5430 AC (0) | 2023.01.14 |
---|---|
[백준][C++] 20210 파일 탐색기 (0) | 2022.11.04 |
[백준][C++] 20437 문자열 게임 2 (0) | 2022.11.04 |
[백준][C++] 17609 회문 (0) | 2022.11.04 |
[백준][C++] 9342 염색체 (0) | 2022.11.04 |