[백준/C++] 27866번 문자와 문자열

Dandyoung·2023년 10월 22일
0

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;
} 

해당 코드를 제출해도 백준에서 통과를 한다. 인덱스를 고려하여 코드를 짜는데 조금은 어려웠지만 좋은 공부였다.

profile
코딩이어려운당신에게,,

0개의 댓글