๐Ÿ’œ๊ฐœ๋ฐœ๊ณผ ์ผ์ƒ (โ‰ง∇โ‰ฆ)๏พ‰

[๋ฐฑ์ค€ c++] 18406 ๋Ÿญํ‚ค ์ŠคํŠธ๋ ˆ์ดํŠธ (๋ธ”2) ๋ณธ๋ฌธ

CS/๋ฐฑ์ค€

[๋ฐฑ์ค€ c++] 18406 ๋Ÿญํ‚ค ์ŠคํŠธ๋ ˆ์ดํŠธ (๋ธ”2)

๊ฐ•์˜์„œ 2022. 9. 21. 16:42

https://www.acmicpc.net/problem/18406

 

18406๋ฒˆ: ๋Ÿญํ‚ค ์ŠคํŠธ๋ ˆ์ดํŠธ

์ฒซ์งธ ์ค„์— ์ ์ˆ˜ N์ด ์ •์ˆ˜๋กœ ์ฃผ์–ด์ง„๋‹ค. (10 ≤ N ≤ 99,999,999) ๋‹จ, ์ ์ˆ˜ N์˜ ์ž๋ฆฟ์ˆ˜๋Š” ํ•ญ์ƒ ์ง์ˆ˜ ํ˜•ํƒœ๋กœ๋งŒ ์ฃผ์–ด์ง„๋‹ค.

www.acmicpc.net

๐Ÿ“Œ ๋ฌธ์ œ

์ž์ž˜ํ•œ ๋ฌธ์ œ ๋‚ด์šฉ์„ ์ œ๊ฑฐํ•˜๊ณ  ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด์„œ๋งŒ ์ด์•ผ๊ธฐ ํ•˜์ž๋ฉด, 

์ž๋ฆฟ์ˆ˜๊ฐ€ ์ง์ˆ˜๊ฐœ ์žˆ๋Š” ์ •์ˆ˜๋ฅผ ์ž…๋ ฅ ๋ฐ›์œผ๋ฉด ํ•ด๋‹น ์ •์ˆ˜์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ ๋‘˜๋กœ ๋‚˜๋ˆด์„ ๋•Œ ์™ผ์ชฝ์— ์žˆ๋Š” ์ž๋ฆฟ์ˆ˜์™€ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์ž๋ฆฟ์ˆ˜๋ฅผ ๋”ํ–ˆ์„ ๋•Œ ๊ทธ ๊ฐ’์ด ๊ฐ™์„ ๊ฒฝ์šฐ๋Š” "LUCKY" ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์•„๋‹ ๊ฒฝ์šฐ๋Š” "READY"๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

 

๋ฌธ์ œ ์กฐ๊ฑด์„ ๋ณด๋‹ˆ ์ž…๋ ฅ์„ intํ˜•์œผ๋กœ ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์— ์ด๋ฅผ ๋ฐฐ์—ด ํ˜•ํƒœ๋กœ ๋ฐ”๊ฟ”์•ผํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ฒผ๋‹ค.

ํŒŒ์ด์ฌ์˜ ๊ฒฝ์šฐ๋Š” intํ˜•์„ ๋ฌธ์ž์—ด ๋ฐฐ์—ด๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋‚˜ c++๋Š” ๋”ฐ๋กœ ์—†๋Š” ๊ฒƒ ๊ฐ™์•„ ์ง์ ‘ ๋ฐฐ์—ด๋กœ ๋ฐ”๊พธ์—ˆ๋‹ค.

์ด๋•Œ ์‚ฌ์šฉํ•œ ๋ฐฉ์‹์ด 10์œผ๋กœ ๋‚˜๋ˆ  ๋‚˜๋จธ์ง€๋ฅผ ๋ฐฐ์—ด์— ์ •๋ฆฌํ•˜๊ณ  ๋ชซ์„ ์ €์žฅํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ชซ์„ ๋‹ค์‹œ 10์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๋‚˜๋จธ์ง€๋ฅผ ์ €์žฅํ•˜๋ฉฐ, ์ด๋ฅผ ๋ฐ˜๋ณตํ•˜์—ฌ ๋ฐฐ์—ดํ™”๋ฅผ ์ง„ํ–‰ํ•œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•  ๋•Œ ์ฃผ์˜์ ์€ ์ž๋ฆฟ์ˆ˜์˜ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ์˜ ํ•ฉ์„ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ํ•ด๋‹น ์•Œ๊ณ ๋ฆฌ์ฆ˜์—์„œ๋Š” ๊ทธ๋ ‡๊ฒŒ๊นŒ์ง€ ์ค‘์š”ํ•˜์ง€ ์•Š๊ธด ํ•˜๋‹ค.

 

 

๐Ÿ’ป ์ •๋‹ต ์ฝ”๋“œ

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

int main() {

	// get number by int type
	int N; cin >> N;
	int temp = N;
	vector<int> list;

	// loop for check number
	// divide 10 and get remainder 
	// ex) 123456 / 10 = 12345 ..... 6

	int idx = 0;
	int total = 0;
	while (temp > 0) {

		int left = temp % 10;
		list.push_back(left);
		temp = temp / 10;
		idx++;
		total += left;
	}

	idx = idx / 2;

	// divide right & left
	int right = 0;
	for (int i = 0; i < idx; i++) right += list[i];
	int left = total - right;

	//print
	if (left == right) printf("LUCKY\n");
	else printf("READY\n");

	return 0;
}

โฑ ๊ฒฐ๊ณผ