๊ธฐ๋ก๋ฐฉ

BOJ_1181 : ๋‹จ์–ด ์ •๋ ฌ ๋ณธ๋ฌธ

CodingTest/C++

BOJ_1181 : ๋‹จ์–ด ์ •๋ ฌ

Soom_1n 2022. 6. 2. 00:29

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

1181๋ฒˆ: ๋‹จ์–ด ์ •๋ ฌ

์ฒซ์งธ ์ค„์— ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 ≤ N ≤ 20,000) ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ์˜ ์ค„์— ๊ฑธ์ณ ์•ŒํŒŒ๋ฒณ ์†Œ๋ฌธ์ž๋กœ ์ด๋ฃจ์–ด์ง„ ๋‹จ์–ด๊ฐ€ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ฃผ์–ด์ง„๋‹ค. ์ฃผ์–ด์ง€๋Š” ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 50์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค.

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • ๋ฌธ์ž์—ด์˜ ๊ธธ์ด ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ๊ณผ ์‚ฌ์ „์‹ ์ •๋ ฌ์„ ๊ฐ™์ด ์ ์šฉํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.
  • <algorithm>ํ—ค๋” ์˜ sort ํ•จ์ˆ˜ compare์ธ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ๋‹ค.
  •  

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

bool check(std::string& a, std::string& b) {
	if (a.size() < b.size())
		return true;
	else if (a.size() == b.size()) 
	{
		if (a.compare(b) >= 0) 
			return false;
		return true;
	}
	return false;
}

int main(void) {
	int N;

	cin >> N;

	vector<string> str(N);

	for (int i = 0; i < N; i++)
		cin >> str[i];

	sort(str.begin(), str.end(), check);

	string temp = str[0];
	cout << temp << endl;

	for (int i = 1; i < N; i++)
	{
		if (temp != str[i]) {
			cout << str[i] << endl;
			temp = str[i];
		}
	}
	return 0;
}

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ๋ฌธ์ž์—ด์„ string ๋ฒกํ„ฐ์— ์ž…๋ ฅ๋ฐ›๊ณ  sortํ•จ์ˆ˜์˜ 3๋ฒˆ์งธ ์ธ์ž์ธ ๋น„๊ต๊ธฐ ํ•จ์ˆ˜ check ๋ฅผ ์„ค์ •ํ–ˆ๋‹ค.
  • check ํ•จ์ˆ˜
    • ๋ฌธ์ž์—ด ๊ฐ’ ๋ณต์‚ฌ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์ฐธ์กฐํ˜•์œผ๋กœ string์„ ๋น„๊ตํ•˜๋„๋ก ํ–ˆ๋‹ค.
    • ๋‚ด๋ฆผ์ฐจ์ˆœ ์ •๋ ฌ์ด ๋˜์•ผํ•˜๋ฏ€๋กœ a.size() > b.size() ์ด๋ฉด true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ ค ํ–ˆ๋”๋‹ˆ ๋ฐ˜๋Œ€๋กœ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ์ด ๋˜์–ด์„œ 
      ๋ถ€ํ˜ธ๋ฅผ ๋ฐ˜๋Œ€๋กœ ์ ์šฉํ•ด์ฃผ์—ˆ๋‹ค (์ด์œ ๋Š” ๋ชจ๋ฅด๊ฒ ๋‹ค...)
    • ๋ฌธ์ž์—ด์„ ๋น„๊ตํ•˜๋Š” compare ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด ์‚ฌ์ „์‹ ์ •๋ ฌ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.
      • a.compare(b) > 0 ์ด๋ฉด, a > b
      • a.compare(b) == 0 ์ด๋ฉด, a == b
      • a.compare(b) < 0 ์ด๋ฉด, a < b
    • ์ฝ”๋“œ์—์„œ๋Š” a < b ์—์„œ๋งŒ true๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.
  • ์ •ํ™•ํ•œ ๋น„๊ต๊ธฐ ํ•จ์ˆ˜์˜ ์ •์˜๋ฅผ ์ฐพ์•„๋ณด์ง„ ๋ชปํ–ˆ์ง€๋งŒ, true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๊ทธ์ƒํƒœ๊ฐ€ ok ๋ผ๋Š” ๋œป์ธ ๊ฒƒ ๊ฐ™๋‹ค.
    (์›๋ž˜๋Š” true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋ฉด ๊ตํ™˜์ด ์ด๋ฃจ์–ด ์ ธ์•ผ ํ•œ๋‹ค๊ณ  ๋ดค๋Š”๋ฐ, ์ฝ”๋“œ๋ฅผ ๋ถ€๋ถ„์ ์œผ๋กœ ๋Œ๋ ค๋ณด๋ฉฐ ํ™•์ธํ•ด๋ณด๋‹ˆ ์ด๋ ‡๋‹ค)
  • ๋”ฐ๋ผ์„œ a.size() < b.szie()์ด๊ณ  a < b์ธ ์ƒํƒœ๋ฅผ ๋งŒ๋“ค์–ด์ค€๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ๋ฐ”๋กœ ์–ผ๋งˆ์ „์— ํ’€์—ˆ๋˜ ์‚ฌ์ „์‹ ํ’€์ด ๋ฐฉ๋ฒ•์ด ๋– ์˜ฌ๋ผ ์ ์šฉ์‹œ์ผฐ๋‹ค. ๋‚ด ํ’€์ด_2204
  • ์ €๋ฒˆ ๋ฌธ์ œ ํ’€์ด์—์„œ ์ƒ๊ฐํ–ˆ๋˜ ๋น„๊ต๊ธฐ ํ•จ์ˆ˜์˜ ์›๋ฆฌ๊ฐ€ ์ข€ ๋‹ค๋ฅธ ๊ฒƒ ๊ฐ™์•„์„œ ๋‹ค๋ฅธ ๋ฌธ์ œ๋ฅผ ํ’€๋•Œ ์ฃผ์˜ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค.
  • compare ํ•จ์ˆ˜๋ฅผ ์ข€ ๋” ํŽธํ•˜๊ฒŒ ๊ฒฐ๊ณผ๋ฅผ ์ƒ๊ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์›Œ์„œ ์ ์–ด๋ณด์•˜๋‹ค.
 

BOJ_2204 : ๋„๋น„์˜ ๋‚œ๋…์ฆ ํ…Œ์ŠคํŠธ

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ 2204๋ฒˆ: ๋„๋น„์˜ ๋‚œ๋…์ฆ ํ…Œ์ŠคํŠธ ๊ฟ์€ ๋„๋น„์—๊ฒŒ ์˜์–ด๋‹จ์–ด๋“ค์„ ์ œ์‹œํ•œ ํ›„ ์–ด๋–ค ๋‹จ์–ด๊ฐ€ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์ „์ˆœ์œผ๋กœ ๊ฐ€์žฅ ์•ž์„œ๋Š”์ง€ ๋งž์ถ”๋ฉด ์–‘๋ง์„ ์ฃผ์–ด ์ž์œ ๋ฅผ ์–ป๊ฒŒํ•ด์ค€๋‹ค๊ณ 

soooom.tistory.com

 

728x90

'CodingTest > C++' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_10820 : ๋ฌธ์ž์—ด ๋ถ„์„  (0) 2022.06.02
BOJ_15351 : ์ธ์ƒ ์ ์ˆ˜  (0) 2022.06.02
BOJ_2292 : ๋ฒŒ์ง‘  (0) 2022.06.01
BOJ_2231 : ๋ถ„ํ•ดํ•ฉ  (0) 2022.06.01
BOJ_10250 : ACM ํ˜ธํ…”  (0) 2022.06.01