algorithm shoemaker problem - andstudy/forge GitHub Wiki

Mastojun

  • ์ด๊ฒƒ๋„ ํ’€์–ด๋ดค๋˜ ๋ฌธ์ œ์ด๊ธดํ•œ๋ฐ, ๋„๋ฌด์ง€ ์–ด๋–ป๊ฒŒ ํ’€์—ˆ๋Š”์ง€ ๋– ์˜ค๋ฅด์ง€ ์•Š์•„์„œ ๋ฌด์ง€ ์• ๋จน์—ˆ์Šต๋‹ˆ๋‹ค. ๋จธ๋ฆฌ๊ฐ€ ํ‡ดํ™”ํ•œ ๊ธฐ๋ถ„์„ ๋А๊ผˆ๋‹ค๋Šฅ...

์ด ๋ฌธ์ œ ํ’€๋ฉด์„œ ๋ฐœ๊ฒฌํ•œ Programming-Challenges๋กœ๋ด‡์˜ ๋ฌธ์ œ์ 

    copy(Data.begin(), Data.end(),ostream_iterator<SData>(cout, " "));

์œ„์ฝ”๋“œ๋Š” ์ปดํŒŒ์ผ ์—๋Ÿฌ์ž…๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ ์—๋Ÿฌ ๋‚ด์šฉ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

    pgdaemon.tmp.cpp: In function 'int main()':
    pgdaemon.tmp.cpp:55: error: 'ostream_iterator' was not declared in this scope
    pgdaemon.tmp.cpp:55: error: expected primary-expression before '>' token

ostreamiterator๊ฐ€ ์„ ์–ธํ•˜์ง€ ์•Š์•˜๋‹ค๊ณ ํ•ด์„œ ํ—ค๋”ํŒŒ์ผ ๋ฌธ์ œ์ธ์ง€ ์ผ์•˜๋Š”๋ฐ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์‚ฝ์งˆ๋์—..

    copy(Data.begin(), Data.end(),ostream_iterator<struct SData>(cout, " "));
  • ์œ„์™€ ๊ฐ™์ด ์ˆ˜์ •์„ ํ–ˆ๋”๋‹ˆ ์ •์ƒ์ ์ธ ์ปดํŒŒ์ผ์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • ํ•˜์ง€๋งŒ ์˜ค๋žซ๋™์•ˆ ์• ์ป๋Š”๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ฐ ์ค„๋งˆ๋‹ค ๋งˆ์ง€๋ง‰์— ' ' ๊ฐ€ ํ•˜๋‚˜ ๋” ๋“ค์–ด๊ฐ€์„œ PE(Presentation error)๊ฐ€ ๋ฐœ์ƒํ•˜๋”๊ตฐ์š” :D

  • vector๋Š” ์ œ๋Œ€๋กœ ๋˜์—ˆ๋Š”๋ฐ ostreamiterator๋งŒ ์•ˆ๋˜๋Š”๊ฒŒ ํŠน๋ณ„ํ•œ ์ด์œ ๋ผ๋„ ์žˆ์„๊นŒ์š”? ์•„๋‹ˆ๋ฉด ๋‹จ์ˆœํžˆ G++์ด๋‚˜ ํ™ˆํŽ˜์ด์ง€์˜ ๋ฌธ์ œ์ผ๊นŒ์š”?

๋ฌธ์ œ ํ’€์ด ์ฝ”๋“œ

    #include <iostream>
    #include <vector>
    #include <iterator>
    #include <algorithm>
    
    using namespace std;
    
    struct SData
    {
    	int T;
    	int S;
    	int n;
    
    	bool operator<(const SData &rhs) const
    	{
    		return rhs.T*S > rhs.S*T;
    	}
    
    };
    
    vector<SData> Data;
    
    void InputData()
    {
    	int n;
    	SData TempData;
    	Data.clear();
    
    	cin >> n;
    
    	for(int i = 1; i <= n; ++i )
    	{
    		cin >> TempData.T >> TempData.S;
    		TempData.n = i;
    
    		Data.push_back(TempData);
    	}		
    }
    
    void OutputData()
    {
    	for(int i = 0; i < Data.size(); ++i )
    	{
    		cout << Data[i].n;
    		if( i != Data.size()-1 ) cout << " ";
    	}
    }
    
    int main()
    {
    	
    	int n;
    
    	cin >> n;
    	while(n--)
    	{
    		InputData();
    		sort(Data.begin(), Data.end());
    		OutputData();
    		cout << endl;
    
    		if(n) cout << endl;
    	}
    
    	return 0;
    }

CynicJJ

ํ’€์ด

  1. ํŒจ๋„ํ‹ฐ๊ฐ€ ํด์ˆ˜๋ก ๋นจ๋ฆฌ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒƒ์ด ์œ ๋ฆฌ
  2. ์ž‘์—…์ผ ์ˆ˜๊ฐ€ ์ ์„์ˆ˜๋ก ๋นจ๋ฆฌ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์œ ๋ฆฌ
  3. ๊ทธ๋ ‡๋‹ค๋ฉด (ํŒจ๋„ํ‹ฐ/์ž‘์—…์ผ) ์ˆœ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š”๊ฒƒ์ด ์œ ๋ฆฌ???
  4. (ํŒจ๋„ํ‹ฐ/์ž‘์—…์ผ)์ด ๊ฐ™์€ ๊ฒฝ์šฐ ์ˆœ์„œ๋ฅผ ๋ฐ”๊ฟ”๋„ ์ด ํŒจ๋„ํ‹ฐ์—๋Š” ๋ณ€ํ™” ์—†๋‹ค

์–ด๋ ค์›€

  1. ๊ทธ๋Ÿด์‹ธํ•˜์ง€๋งŒ ๋ญ”๊ฐ€ ๊บผ๋ฆผ์น™ํ•˜๋‹ค

์‹คํŒจํ•œ ํ’€์ด

  1. ์ด ์ผ์„ ์ง„ํ–‰ ํ•  ๊ฒฝ์šฐ ๋ฐœ์ƒํ•˜๋Š” ํŒจ๋„ํ‹ฐ์˜ ์ดํ•ฉ์ด ์ ์€ ๊ฒƒ ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌ
  2. ํŒจ๋„ํ‹ฐ์˜ ์ดํ•ฉ์€ ์ด ์ผ์— ํ•„์š”ํ•œ ์‹œ๊ฐ„์— ๋‹ค๋ฅธ ์ผ๋“ค์˜ ํŒจ๋„ํ‹ฐ๋ฅผ ๊ณฑํ•œ๊ฒƒ๋“ค์˜ ํ•ฉ
  3. ์ƒ˜ํ”Œ ์•ˆ ํ’€๋ฆผ
  4. ํ’€์ด๋Œ€๋กœ๋ผ๋ฉด 2 1 3 4 ๊ฐ€ ์•„๋‹ˆ๋ผ 2 3 1 4 ๊ฐ€ ๋œ๋‹ค
โš ๏ธ **GitHub.com Fallback** โš ๏ธ