본문으로 바로가기

주어지는 문자열을 숫자로 변환하는 함수를 정의하고 맨 앞자리가 0인 경우와 저항의 값이 0인 경우를 잘 고려하면 문제를 풀 수 있다.

#include <iostream>
#include <string>
using namespace std;

string s1, s2, s3;
string ans;

int getNum(string);

int main() {
  cin >> s1 >> s2 >> s3;
  int n1 = getNum(s1);
  int n2 = getNum(s2);
  int n3 = getNum(s3);
  if (n1) ans += to_string(n1);// 맨 앞자리가 0인 경우
  ans += to_string(n2);
  for (int i=0; i<n3; i++) {
    ans += "0";
  }
  cout << ((!n1 && !n2) ? "0" : ans);
  return 0;
}

int getNum(string s) {
  if (s == "black") return 0;
  if (s == "brown") return 1;
  if (s == "red") return 2;
  if (s == "orange") return 3;
  if (s == "yellow") return 4;
  if (s == "green") return 5;
  if (s == "blue") return 6;
  if (s == "violet") return 7;
  if (s == "grey") return 8;
  if (s == "white") return 9;
  return -1;
}

'Programming > Baekjoon Online Judge' 카테고리의 다른 글

[BOJ] 1094: 막대기  (0) 2018.06.11
[BOJ] 1085: 직사각형에서 탈출  (0) 2018.06.11
[BOJ] 1076: 저항  (0) 2018.06.11
[BOJ] 1075: 나누기  (0) 2018.06.08
[BOJ] 1037: 약수  (0) 2018.06.08
[BOJ] 1026: 보물  (0) 2018.06.08

댓글을 달아 주세요