ASCII와 논리연산자를 이용한 알고리즘

제가 작성한 코드는 다음과 같습니다.

 

#include <iostream>

using namespace std;

int main(){
    string alp = {""}; //알파벳 배열 alp를 NULL로 초기화한다.
    int time = 0; 

    cin>>alp;

    for(int i = 0;alp[i] != 0;i++ ){


        // 논리연산자를 이용하여 각 알파벳에 해당하는 범위를 ASCII의 dec값으로
        // 지정해준다.
        if (alp[i] > 0){
            if (alp[i] >= 65 && alp[i] <= 67){
                alp[i] = 3;
            }else if (alp[i] <= 70 && alp[i] >= 68 ){
                alp[i] = 4;
            }else if (alp[i] <= 73 && alp[i] >= 71 ){
                alp[i] = 5;
            }else if (alp[i] <= 76 && alp[i] >= 74 ){
                alp[i] = 6;
            }else if (alp[i] <= 79 && alp[i] >= 77 ){
                alp[i] = 7;
            }else if (alp[i] <= 83 && alp[i] >= 80 ){
                alp[i] = 8;
            }else if (alp[i] <= 86 && alp[i] >= 84 ){
                alp[i] = 9;
            }else if (alp[i] <= 90 && alp[i] >= 87 ){
                alp[i] = 10;
            }
        
        }

        time += alp[i]; 
    }

    cout<<time<<endl;

    return 0;
}

 

처음 alp배열을 char형으로 받았다가 계속해서 틀리게 되었다.

 

문제에서 주어진건 문자열을 받으라 했으므로 string을 이용해야 한다는 것.

 

ASCII에 관한것은 따로 글을 정리해둔것도 있으니 참고하면 좋습니다.

 

 

 

'코딩 > 백준 알고리즘' 카테고리의 다른 글

백준 2750번 : 수 정렬하기  (0) 2022.02.20
백준 2798번 : 블랙잭  (0) 2022.02.15
백준 11720번 : 숫자의 합  (0) 2022.02.15
백준 1546번 : 평균  (0) 2022.02.15
백준 3052번 : 나머지  (0) 2022.02.14