카테고리 없음

백준 5622번 : 다이얼

show2888 2019. 10. 31. 19:30
반응형

https://www.acmicpc.net/problem/5622

 

5622번: 다이얼

문제 상근이의 할머니는 아래 그림과 같이 오래된 다이얼 전화기를 사용한다. 전화를 걸고 싶은 번호가 있다면, 숫자를 하나를 누른 다음에 금속 핀이 있는 곳 까지 시계방향으로 돌려야 한다. 숫자를 하나 누르면 다이얼이 처음 위치로 돌아가고, 다음 숫자를 누르려면 다이얼을 처음 위치에서 다시 돌려야 한다. 숫자 1을 걸려면 총 2초가 필요하다. 1보다 큰 수를 거는데 걸리는 시간은 이보다 더 걸리며, 한 칸 옆에 있는 숫자를 걸기 위해선 1초씩 더 걸린다.

www.acmicpc.net

 

# for(char temp : in) 이렇게 for문 쓰는거 11버전이후인데 갠찮은듯

#include <iostream>
#include <map>
#include <vector>

using namespace std;

int main()
{
    string in;
    cin >> in;

    vector<string> vec;
    vec.push_back("ABC");
    vec.push_back("DEF");
    vec.push_back("GHI");
    vec.push_back("JKL");
    vec.push_back("MNO");
    vec.push_back("PQRS");
    vec.push_back("TUV");
    vec.push_back("WXYZ");

    int ans = 0; 
    for(char temp : in)
    {
        for(int j =0 ;j<vec.size(); j++)
        {
            if(vec[j].find(temp) > 10000){
                continue;
            }
            else{
                ans += j+3;
            }
        }    
    }
    cout << ans;
}

 

+ 이분 풀이 참고

https://blog.naver.com/PostView.nhn?blogId=jhnyang&logNo=221521185529

반응형