๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โœจ Algorithm/๐Ÿ•‍๐Ÿฆบ ๋ฐ”ํ‚น๋… ๊ฐœ๋…

[0x02] ๊ธฐ์ดˆ ์ฝ”๋“œ ์ž‘์„ฑ ์š”๋ น 2

by nitronium102 2023. 6. 20.

ํ•จ์ˆ˜ ์ธ์ž

  • ๋ฐฐ์—ด์„ ์ธ์ž๋กœ ๋„˜๊ธฐ๋ฉด ์ฃผ์†Œ๊ฐ’์ด ๋„˜์–ด๊ฐ„๋‹ค
  • ๋ณ€์ˆ˜๋ฅผ ์ธ์ž๋กœ ๋„˜๊ธฐ๋ฉด ๋ณต์‚ฌ๋œ ๊ฐ’์ด ๋“ค์–ด๊ฐ„๋‹ค
  • & (reference)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ฐธ์กฐ ๋Œ€์ƒ์˜ ์ฃผ์†Œ ์ •๋ณด๋งŒ ๋„˜์–ด๊ฐ

STL standard template library

STL์„ ํ•จ์ˆ˜ ์ธ์ž๋กœ ๋„˜๊ธธ ๋•Œ

๊ทธ๋ƒฅ STL์„ ํ•จ์ˆ˜ ์ธ์ž๋กœ ์‹ค์–ด๋ณด๋‚ด๋ฉด ๋ณต์‚ฌ๋ณธ์„ ๋„˜๊ธฐ๋Š” ๊ฒƒ

// ํฌ๊ธฐ๊ฐ€ n์ธ vector 2๊ฐœ๋ฅผ ๋น„๊ตํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ
// n๋งŒํผ ๋ณต์‚ฌํ•˜๊ณ  ๋ณด๋‚ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— O(N) ์‹œ๊ฐ„ ๋ณต์žก๋„
bool cmp1(vector<int> v1, vector<int> v2, int idx){
	return v1[idx] > v2[idx]
}

ํ‘œ์ค€ ์ž…์ถœ๋ ฅ

๊ณต๋ฐฑ ํฌํ•จ ๋ฌธ์ž์—ด ์ž…๋ ฅ

  • scanf์™€ cin ๋ชจ๋‘ ๊ณต๋ฐฑ ํฌํ•จ ๋ฌธ์ž์—ด ์ž…๋ ฅ์ด ๊นŒ๋‹ค๋กญ๋‹ค
  • ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
    1. scanf์˜ ์˜ต์…˜
    char a1[10];
    scanf("%[^\\n]", a1);
    
    1. gets ํ•จ์ˆ˜(๋ณด์•ˆ์ƒ์˜ ์ด์Šˆ๋กœ c++14 ์ด์ƒ์—์„œ๋Š” ์ œ๊ฑฐ)
    char a2[10];
    gets(a2);
    puts(a2);
    
    1. getline ํ•จ์ˆ˜
    string s;
    getline(cin, s);
    cout << s;
    

์ž…์ถœ๋ ฅ ์‹œ๊ฐ„ ์ดˆ๊ณผ

1) ios::sync_with_stdio

c stream๊ณผ c++ stream์ด ๋‹ค๋ฅธ๋ฐ ๋งŒ์•ฝ c++๋งŒ ์“ธ ๊ฒฝ์šฐ c์™€ c++์˜ ๋™๊ธฐํ™”๋ฅผ ๋Š์–ด๋ฒ„๋ฆฌ๋Š” ๋ฐฉ์‹

→ ๋งŒ์•ฝ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด cout๊ณผ printf๋ฅผ ์„ž์–ด์“ฐ๋ฉด ์•ˆ ๋œ๋‹ค!

2) cin.tie

  • ์ž…์ถœ๋ ฅ์— ๋ฒ„ํผ๊ฐ€ ์žˆ์–ด ์—ฌ๊ธฐ์—์„œ ์–ด๋Š ์ •๋„ ๋ชจ์•˜๋‹ค๊ฐ€ ๋ด„ → ์ˆœ์„œ๊ฐ€ ๊ผฌ์ผ ์ˆ˜ ์žˆ์Œ
  • ๋”ฐ๋ผ์„œ cin ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ์ผ๋ฐ˜์ ์œผ๋กœ cout ๋ฒ„ํผ๋ฅผ ์ง€์›Œ์ค€๋‹ค
  • ๊ทผ๋ฐ ์˜จ๋ผ์ธ ์ฑ„์  ์ €์ง€์—์„œ๋Š” ์ถœ๋ ฅ๋งŒ ํ™•์ธํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ๋ช…๋ น์–ด๋กœ ๋ฒ„ํผ ์•ˆ ๋น„์šฐ๊ฒŒ ํ•จ
ios::sync_with_stdio(false);
cin.tie(nullptr);

๋Œ“๊ธ€