[백준] 숫자놀이 C++

Algorithm|2022. 1. 25. 09:08
반응형
 

1755번: 숫자놀이

79를 영어로 읽되 숫자 단위로 하나씩 읽는다면 "seven nine"이 된다. 80은 마찬가지로 "eight zero"라고 읽는다. 79는 80보다 작지만, 영어로 숫자 하나씩 읽는다면 "eight zero"가 "seven nine"보다 사전순으로

www.acmicpc.net

 

다양한 변수를 가지고 있는 객체를 하나의 변수를 기준으로 정렬하는 방법을 유용하게 잘 쓰고 있다.

마치 c++의 pandas를 만난 기분이다.

 

#include <iostream>
#include <string>
#include <algorithm>

using namespace std;

class number
{
    public: 
        int n;
        string N = "";
 
};

bool cmp(number a, number b) 
{
	if (a.N < b.N) return true;
	else return false;
}

string int2string(int k)
{
  string s;

  if(k == 1)
    s ="one";
  else  if(k == 2)
    s ="two";
  else  if(k == 3)
    s ="three";
  else  if(k == 4)
    s ="four";
  else  if(k == 5)
    s ="five";
  else  if(k == 6)
    s ="six";
  else  if(k == 7)
    s ="seven";
  else  if(k == 8)
    s ="eight";
  else  if(k == 9)
    s ="nine";
  else 
    s = "zero";
  return s;
}


int main()
{
  int enter=0;
  int m,n;
  cin >> m >> n;
  number p[100];

  for(int i=m; i<=n; i++)
  {
    string s;
         
    
    p[i].n = i;

    if(i/10 != 0)
      p[i].N = int2string(i/10);

    p[i].N += int2string(i%10);

    
  }
  
  sort(p+m,p+n+1,cmp);
  
 for(int i=m; i<=n; i++)
 {
   enter++;
   cout << p[i].n << " ";

   if(enter == 10)
   {
     cout << endl;
     enter = 0;
   }
 }
	return 0;
}
반응형

댓글()