안녕하세요. 오늘은 저항의 값을 구해볼 거예요.
https://www.acmicpc.net/problem/1076
사실 0만 아니였어도 쉽게 풀 수 있는 문제였습니다.
하지만 0이 생기면서 말이 달라집니다.
만약 첫번째 혹은 두번째 문자열에서 0이 아닌 값이 나오면 그 값을 출력하고 print를 true로 바꿔줍니다.
그런데 두번째 문자열이고 0인데 print가 true다? 그러면 출력합니다.
맨 마지막에는 print가 true일때만 그 숫자만큼 0을 출력, 아니면 0 하나만 출력해주면 됩니다.
#include <iostream>
#include <string>
using namespace std;
int main(void)
{
ios_base::sync_with_stdio(false); cin.tie(NULL);
string s, color[10] = { "black","brown","red","orange","yellow","green","blue","violet","grey","white" };
bool print = false;
for (int i = 0; i < 3; i++)
{
cin >> s;
int val;
for (val = 0;; val++)
if (color[val] == s) break;
if (i <= 1 && val != 0)
{
cout << val;
print = true;
}
else if (i == 1 && print == true)
{
cout << val;
}
if (i == 2)
{
if (print == true)
for (int j = 0; j < val; j++)
cout << 0;
else
cout << 0;
}
}
}
갑사합니다.