안녕하세요 . BlockDMask 입니다.
170810 일자 문제 입니다. (170810 문제 빼먹음 -> 171003 완료)
0. 제목
백준 5622 다이얼
BOJ 5622 다이얼
1. 문제 설명
전화를 걸고 싶은 번호가 있으면, 숫자를 하나 누르고 돌린다.
숫자 하나를 누른 상태에서 금 속 핀이 있는 곳 까지 시계 방향으로 돌려야 한다.
다른 숫자들을 누르려면 원래 위치로 돌아가기를 기다려야 한다.
숫자 1을 걸려면 총 2초가 필요하다.
1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해서는 1초씩 더 걸린다.
입력은 문자열로 들어온다.
즉, 어떤 전화를 걸때, 각 알파벳에 해당하는 숫자를 걸면 된다.
예를 들어, UNUCIC는 868242와 같다.
단어가 주어졌을 때, 이 전화를 걸기 위해 필요한 시간을 구하면 된다.
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어집니다.
단어는 2~15글자로 이루어져 있습니다.
2. 풀이 과정
각 단어에 맞는 숫자를 반환해서 일일히 더하면 됩니다.
3. 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 | // BOJ 5622 다이얼 #include<iostream> #include<string> using namespace std; //문자가 들어오면 그에 대한 숫자를 반환하는 함수 int check(char c){ int num; switch(c){ case 'A': case 'B': case 'C': num = 2; break; case 'D': case 'E': case 'F': num = 3; break; case 'G': case 'H': case 'I': num = 4; break; case 'J': case 'K': case 'L': num = 5; break; case 'M': case 'N': case 'O': num = 6; break; case 'P': case 'Q': case 'R': case 'S': num = 7; break; case 'T': case 'U': case 'V': num = 8; break; case 'W': case 'X': case 'Y': case 'Z': num = 9; break; default: break; } return num; } int main(void){ //입력 string str; cin >> str; int sum =0; for(int i=0; i<str.length(); i++) { if (str[i] == 0) { //0일때 sum += 10; } else if (str[i] == 1) { //1일때 sum += 1; } else { sum += check(str[i]); //A~Z일때 (2~9) } } sum += (int)str.length(); //돌아오는 시간계산 //출력 cout << sum; return 0; } | cs |
4. 인증
문제 출처 - https://www.acmicpc.net/problem/5622
감사합니다. 하트 꾹 부탁드립니다.
'<알고리즘 문제풀이&연습> > [C++] 백준, 프로그래머스 등등' 카테고리의 다른 글
[백준 2562] 최대값 (0) | 2017.10.08 |
---|---|
[백준 2309] 일곱 난쟁이 (브루트 포스) (0) | 2017.10.06 |
[백준 4673] 셀프 넘버 (2) | 2017.10.04 |
[백준 2941] 크로아티아 알파벳 (0) | 2017.10.04 |
[백준 13458] 시험 감독 (1) | 2017.09.26 |
[백준 2292] 벌집 (1) | 2017.09.26 |
[백준 1427] 소트인사이드 (2) | 2017.09.23 |
[백준 1316] 그룹 단어 체커 (4) | 2017.09.21 |