문제 링크 

 

처음에는 문자열의 범위 조건으로 총합을 구했다. 

다른 분의 코드를 보고 문자의 인덱스 자체를 숫자로 쓰는 코드로 바꿔서 다시 풀었다. 

 

 

"맞았습니다" 코드 링크1 

#include <bits/stdc++.h>
using namespace std;

string input;
int len, sum;

int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);

  cin >> input;
  len = input.size();

  for(int i = 0; i < len; i++){
    char ch = input[i];

    if(ch >= 'W') sum += 10;
    else if(ch >= 'T') sum += 9;
    else if( ch >= 'P') sum += 8;
    else if(ch >= 'M') sum += 7;
    else if(ch >= 'J') sum += 6;
    else if(ch >= 'G') sum += 5;
    else if(ch >= 'D') sum += 4;
    else if(ch >= 'A') sum += 3;
  }
  cout << sum;

  return 0;
}

 

 

"맞았습니다" 코드 링크2 : 문자의 인덱스를 숫자로 활용 

#include <bits/stdc++.h>
using namespace std;

string input;
string numst = "22233344455566677778889999"; // 다이얼 숫자 그대로 사용

int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);

  cin >> input;

  int sum = 0;
  int len = input.size();

  for(int i = 0; i < len; i++){
    int numidx = input[i] - 'A';
    sum += (numst[numidx] - '0' + 1); // 다이얼 숫자보다 +1초 더 걸림.
  }
  cout << sum;

  return 0;
}
728x90

+ Recent posts