๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Coding Test/๋ฐฑ์ค€(BOJ)

[BOJ] ๋ฐฑ์ค€ #1431. ์‹œ๋ฆฌ์–ผ ๋ฒˆํ˜ธ (C++)

๐ŸŽจ ๋ฌธ์ œ

๋ฌธ์ œ ๋งํฌ: https://www.acmicpc.net/problem/1431

  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ถ„๋ฅ˜: ์ •๋ ฌ
  • ๋‚œ์ด๋„: Silver 3

 

๐Ÿ’ฌ ํ’€์ด

1. string์„ ์—ฌ๋Ÿฌ ๊ฐœ ๋‹ด์€ vector, ์ฆ‰ vector<string>์— ์ž…๋ ฅ์„ ๋ฐ›๊ณ ,

2. ๋ฌธ์ œ ์กฐ๊ฑด์— ๋”ฐ๋ผ cmp()๋ฅผ ์ •์˜ํ•ด sortํ•ด์ค€๋‹ค.

 

๋งž์™œํ‹€(๋งž๋Š”๋ฐ ์™œ ์ž๊พธ ํ‹€๋ฆฌ๋‹ค๊ณ  ํ•˜์ง€)์„ ํ•œ 945098๋ฒˆ ํ•˜๊ณ  ๋‚˜์„œ์•ผ

return s1<s2;์—์„œ return์„ ๋นผ๋จน์—ˆ๋‹ค๋Š” ๊ฑธ ์ฐพ์•„๋ƒˆ๋‹ค. ใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žใ…Žํ•˜. ๋ฐ”๋ณธ๊ฐ€ ์ง„์งœ

ํ˜น์‹œ const๊ฐ€? ์•„๋‹˜ ์„ค๋งˆ &๋•Œ๋ฌธ์—......? ๋“ฑ๋“ฑ ๋„๋Œ€์ฒด ์–ด๋””๊ฐ€ ํ‹€๋ฆฐ๊ฑด์ง€ ์•Œ์•„๋ณด๋ฉด์„œ ๋•๋ถ„์— ๊ฐœ๋… ๋ณต์Šต์„ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ตฟ^^,,

 

 

๐Ÿ‘ฉ‍๐Ÿ’ป ์ฝ”๋“œ

C++

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;

int getTotal(const string &s) {
	int total = 0;
	for (int i = 0; i < s.size(); i++) {
		if ('0' <= s[i] && s[i] <= '9') total += (s[i] - '0');
	}
	return total;
}

bool cmp(const string &s1, const string &s2) {
	int len1 = s1.size(), len2 = s2.size();
	if (len1 == len2) {
		int total1 = getTotal(s1);
		int total2 = getTotal(s2);
		if (total1 == total2) return s1 < s2;
		else return total1 < total2;
	}
	else return len1 < len2;
}

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	//freopen("input.txt", "rt", stdin);

	int N;  cin >> N;
	vector<string> v(N);
	for(int i = 0; i < N; i++) {
		cin >> v[i];
	}

	sort(v.begin(), v.end(), cmp);

	for (int i = 0; i < N; i++) {
		cout << v[i] << '\n';
	}

	return 0;
}