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 |