티스토리 뷰

Daily Algorithm Solving

[백준] 저항 1076번

jhkang-dev 2018. 9. 29. 19:47

[백준] 저항 1076번

문제 링크 : https://www.acmicpc.net/problem/1076

답지 링크 : https://gist.github.com/Baekjoon/9a5d86db0452703ec384



문제 해설 : 이 문제는 map을 이용하면 간단하게 사용할 수 있는 문제이다. 각 색깔을 키로 하고 그에 대한 값을 map에 입력해주고 각각의 값을 사용하여 계산해주면 된다.


내가 작성한 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <map>
#include <string>
 
using namespace std;
int main() {
    string color[3];
    map<stringint> om1 = { {"black"0},{"brown"1}, {"red",2}, 
{"orange",3},{"yellow"4}, {"green"5}, {"blue"6}, {"violet"7}, {"grey"8}, {"white"9} };
    map<intint> om2 = { {0,1}, {1,10}, {2,100}, {31000},{410000}, 
{5100000}, {61000000}, {710000000}, {8100000000}, {91000000000} };
    for (int i = 0; i < 3; i++) {
        cin >> color[i];
    }
    long long answer = 0;
    answer += 10 * om1[color[0]];
    answer += 1 * om1[color[1]];
    answer *= om2[om1[color[2]]];
    cout << answer<<'\n' ;
 
    return 0;
}
cs


나는 map을 2개 만들어서 했었다. 하지만 이것보다 간단하게 하는 방법이 있다.


1
2
3
4
5
long long ans = (long long)(d[a]*10 + d[b]); 
    for (int k=0; k<d[c]; k++) { 
        ans *= 10LL; 
   } 
 
cs

위와 같이 for문을 돌려서 값을 찾고, 값만큼 10을 곱하면 된다.




'Daily Algorithm Solving' 카테고리의 다른 글

[백준] 문자열 분석 10820번  (0) 2018.10.03
[백준] 단어의 개수 1152번  (0) 2018.10.03
[백준] 알파벳 찾기 10809번  (0) 2018.09.27
[백준] 오르막수 11057번  (0) 2018.09.16
[백준] 쉬운 계단 수 10844번  (0) 2018.09.16
댓글