https://www.acmicpc.net/problem/27866
해당 문제는 문자열과 정수를 입력받아, 해당 위치에 있는 문자가 무엇인지 출력하는 문제이다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
int a;
cin >> s >> a;
cout << s[a];
return 0;
}
위와 같이 코드를 짜고 곧바로 제출했지만, 결과는 틀렸다고 한다.. 생각해보니, 인덱스는 0부터 시작하기 때문에 'abc'에서 2번째 자리는 'c'이지만, 눈으로 보기에 두번째 자리는 'b'이다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
int a;
cin >> s >> a;
cout << s[a-1];
return 0;
}
실수가 계속되면 그건 실력이다. 명심하자.
참고로 문제에 해당 조건이 주어지지만, 해당 조건이 없다면 어떻게 할까? 라는 생각이 들어 코드를 한번 짜 보았다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
int a;
cin >> s >> a;
if(a>=1 && a <= s.length()){
cout << s[a-1];
}
else{
cout << "문자열의 길이를 넘어섭니다 짧습니다.";
}
return 0;
}
해당 코드를 제출해도 백준에서 통과를 한다. 인덱스를 고려하여 코드를 짜는데 조금은 어려웠지만 좋은 공부였다.