문제 링크입니다: www.acmicpc.net/problem/1864
1864번: 문어 숫자
해류가 매우 느리고 바닥을 기어다니는 생물이 적은 바다 밑바닥에서만 발견되는 잔물결 무늬의 정체는 오랫동안 해양학자들에게 수수께끼였다. 하지만 최근의 연구 성과는 동물 언어학 분야
www.acmicpc.net
간단한 문자열 처리 문제였습니다.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <string> | |
using namespace std; | |
long long pow(int n) | |
{ | |
long long result = 1; | |
for (int i = 0; i < n; i++) | |
{ | |
result *= 8; | |
} | |
return result; | |
} | |
int main(void) | |
{ | |
ios_base::sync_with_stdio(0); | |
cin.tie(0); | |
while (true) | |
{ | |
string octopusNumber; | |
cin >> octopusNumber; | |
if (octopusNumber == "#") | |
{ | |
break; | |
} | |
long long result = 0; | |
for (int i = 0; i < octopusNumber.length(); i++) | |
{ | |
switch (octopusNumber[i]) | |
{ | |
case '-': | |
break; | |
case '\\': | |
result += pow(octopusNumber.length() - (i + 1)); | |
break; | |
case '(': | |
result += 2 * pow(octopusNumber.length() - (i + 1)); | |
break; | |
case '@': | |
result += 3 * pow(octopusNumber.length() - (i + 1)); | |
break; | |
case '?': | |
result += 4 * pow(octopusNumber.length() - (i + 1)); | |
break; | |
case '>': | |
result += 5 * pow(octopusNumber.length() - (i + 1)); | |
break; | |
case '&': | |
result += 6 * pow(octopusNumber.length() - (i + 1)); | |
break; | |
case '%': | |
result += 7 * pow(octopusNumber.length() - (i + 1)); | |
break; | |
case '/': | |
result -= pow(octopusNumber.length() - (i + 1)); | |
break; | |
} | |
} | |
cout << result << "\n"; | |
} | |
return 0; | |
} |


개발환경:Visual Studio 2017
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~
반응형
'알고리즘 > BOJ' 카테고리의 다른 글
백준 1952번 달팽이2 (2) | 2021.04.07 |
---|---|
백준 1942번 디지털시계 (2) | 2021.04.06 |
백준 1837번 암호제작 (0) | 2021.04.04 |
백준 1703번 생장점 (0) | 2021.04.04 |
백준 1598번 꼬리를 무는 숫자 나열 (0) | 2021.04.04 |