본문 바로가기
Algorithm/Baekjoon

[백준/BOJ] 1755번 - 숫자놀이 (C++)

by shine-jung 2021. 7. 15.
반응형

문제 링크

 

코딩하기 전 생각하기

/*
int, string를 pair로 묶은 값을 저장하는 벡터를 생성한다.
M부터 N까지 숫자와 해당 문자열을 벡터에 저장한다.
문자열을 기준으로 오름차순 정렬이 될 수 있도록 comp 함수를 선언하자.
sort 함수와 comp 함수를 이용하여 벡터를 정렬한다.
한 줄에 10개씩 출력한다.
*/

 


 

코드

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

bool comp(pair<int, string> a, pair<int, string> b) {
    return a.second < b.second;
}

int main() {
    vector<string> str = {
        "zero", "one", "two", "three",
        "four", "five", "six", "seven",
        "eight", "nine"
    };
    vector<pair<int, string>> v;
    int M, N;
    cin >> M >> N;
    for ( int i = M; i <= N; i++ ) {
        string s = "";
        for ( auto c : to_string(i) ) {
            s += str[c - '0'];
            s += " ";
        }
        v.push_back(pair<int, string>(i, s));
    }
    sort(v.begin(), v.end(), comp);
    for ( int i = 0; i < v.size(); i++ ) {
        cout << v[i].first << " ";
        if ( i % 10 == 9 ) cout << '\n';
    }
}

 


 

느낀점

 

seventy nine이라고 안읽고 seven nine이라고 읽어서 다행이다,,

다른 풀이들을 보고나서 느낀점은 굳이 comp 함수를 안만들고 pair<string, int>로 저장해서 sort했어도 되는구나..

 

(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.

댓글 환영합니다!

반응형

댓글