반응형
https://www.acmicpc.net/problem/1864
자료구조, 문자열, 진수변환 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
1. 문어의 수를 저장할 map변수 m, 문자열을 입력받을 s를 선언해줍니다.
2. 각 문어의 수를 10진수로 변환하기 위한 전처리를 해줍니다.
3. "#"이 나올 때까지 s에 입력해줍니다.
📔 풀이과정
convert()함수를 수행합니다.
pow함수를 사용하면 8 ^ 2, 8 ^ 1식으로 지수가 포함된 식을 한번에 구할 수 있습니다.
📔 정답출력
convert()함수 반환값을 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
string s;
map <char, int> m;
int convert() {
int num = 0;
int indice = s.size() - 1;
for(int i = 0; i < s.size(); i++, indice--)
num += pow(8,indice) * m[s[i]];
return num;
}
int main(){
m['-'] = 0, m['\\'] = 1, m['('] = 2, m['@'] = 3;
m['?'] = 4, m['>'] = 5, m['&'] = 6, m['%'] = 7;
m['/'] = -1;
while(1){
cin >> s;
if(s == "#") break;
cout << convert() << '\n';
}
}
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - 백준(BOJ) 1417 : 국회의원 선거 (2) | 2022.03.03 |
---|---|
(C++) - 백준(BOJ) 1380 : 귀걸이 (0) | 2022.02.12 |
(C++) - 백준(BOJ) 5766번 : 할아버지는 유명해! (0) | 2021.09.30 |
(C++) - 백준(BOJ) 2075번 : N번째 큰 수 (0) | 2021.09.01 |
(C++) - 프로그래머스(위클리 챌린지) : 4주차 (0) | 2021.08.23 |