728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
한 줄에 하나씩 문어 숫자가 입력으로 주어진다. 각 숫자는 최소 한 개, 최대 여덟 개의 문어 숫자 기호로 이루어져있다. 입력으로 '#'이 들어오면 입력을 종료한다.
출력
입력 받은 문어 숫자에 대응하는 십진수를 한 줄에 하나씩 출력한다.
소스코드
#include <iostream> #include <string> #include <math.h> using namespace std; int main(void) { while (1) { int len; long long ans = 0; string str; cin >> str; if (str == "#") break; len = str.length(); for (int i = 1; i <= len; i++) { int tmp; switch (str[i - 1]) { case '-': tmp = 0; break; case '\\': tmp = 1; break; case '(': tmp = 2; break; case '@': tmp = 3; break; case '?': tmp = 4; break; case '>': tmp = 5; break; case '&': tmp = 6; break; case '%': tmp = 7; break; case '/': tmp = -1; break; default: break; } ans += tmp * pow(8, len - i); } cout << ans << '\n'; } }
Tip
간단한 문자열 처리 문제다. string을 이용할 줄 알면 더 쉽게 풀 수 있다.
728x90
'Computer Science > Algorithm Problem' 카테고리의 다른 글
백준] 10157 - 자리배정(한국정보올림피아드;KOI 2014 지역본선) (0) | 2019.01.06 |
---|---|
백준] 3004 - 체스판 조각(COCI 2007/2008) (0) | 2018.12.29 |
백준] 2436 - 공약수(한국정보올림피아드 2011, KOI 2011 전국본선) (0) | 2018.12.29 |
백준] 4597 - 패리티(ACM-ICPC Regionals) (0) | 2018.12.03 |
백준] 1731 - 추론 (0) | 2018.11.29 |