• Home
  • About
    • on Weekend photo

      on Weekend

      𝙎𝙩𝙪𝙙𝙮𝙞𝙣𝙜

    • Learn More
    • Instagram
    • Github
  • Archive
    • All Posts
    • All Tags
    • All Categories
  • Categories
    • Problem Solving
    • TIL
    • Study
    • Etc
    • 필사
  • Projects

[백준] 5622

05 Dec 2020

코드 바로가기
‘다이얼’ 문제 확인

풀이

숫자를 하나 누른 후 금속 핀이 있는 곳까지 시계 방향으로 돌려야 한다.
숫자를 하나 누르면 다이얼은 처음 위치로 돌아간다.
다음 위치를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다.
숫자 1을 걸려면 총 2초가 필요하다. (아무 숫자 누르고->1을 금속핀에)
할머니는 전화번호를 각 숫자에 해당하는 문자로 외운다.
1 :
2: ABC
3 : DEF
4 : GHI
5 : JKL
6 : MNO
7 : PQRS
8 : TUV
9 : WXYZ
0 : ?
어떤 단어를 걸 때, 각 알파벳에 해당하는 숫자를 건다.
가령 UNUCIC = 868242 이고, 이를 걸기 위해서는 각 숫자에 대해서 9+7+9+3+5+3의 시간이 걸린다.

1. 각 알파벳에 해당하는 숫자 배열  
2. 숫자를 받아서, 각 숫자의 시간(수+1)을 더한다.  

  #include <iostream>
#include <string>
#include <vector>
#include <deque>
#include <algorithm>

using namespace std;

int retN(char C) {
	int ret;
	if (C == 'A' || C == 'B' || C == 'C') ret = 2;
	else if (C == 'D' || C == 'E' || C == 'F') ret = 3;
	else if (C == 'G' || C == 'H' || C == 'I') ret = 4;
	else if (C == 'J' || C == 'K' || C == 'L') ret = 5;
	else if (C == 'M' || C == 'N' || C == 'O') ret = 6;
	else if (C == 'P' || C == 'Q' || C == 'R' || C == 'S') ret = 7;
	else if (C == 'T' || C == 'U' || C == 'V') ret = 8;
	else if (C == 'W' || C == 'X' || C == 'Y' || C == 'Z') ret = 9;
	return ret;
}

int main()
{
	string str;
	cin >> str;
	int ans = 0;
	for (int i = 0; i < str.length(); i++) {
		ans += (retN(str[i]) + 1);
	}
	cout << ans;
	return 0;
}


problem_solvingc++ Share Tweet +1