๊ธฐ๋ก๋ฐฉ

BOJ_22351 : ์ˆ˜ํ•™์€ ์ฒด์œก๊ณผ๋ชฉ ์ž…๋‹ˆ๋‹ค 3 ๋ณธ๋ฌธ

CodingTest/C++

BOJ_22351 : ์ˆ˜ํ•™์€ ์ฒด์œก๊ณผ๋ชฉ ์ž…๋‹ˆ๋‹ค 3

Soom_1n 2022. 5. 12. 01:47

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

 

22351๋ฒˆ: ์ˆ˜ํ•™์€ ์ฒด์œก๊ณผ๋ชฉ ์ž…๋‹ˆ๋‹ค 3

์ดํ™˜์ด์˜ ์„ ์ƒ๋‹˜์ด ๋ถ€๋ฅธ ๋‘ ์ •์ˆ˜ $A$์™€ $B$๋ฅผ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์ถœ๋ ฅํ•˜๋ผ. ๋งŒ์•ฝ ๊ฐ€๋Šฅํ•œ ๋‹ต์ด ๋‘ ๊ฐ€์ง€ ์ด์ƒ์ด๋ผ๋ฉด, ๊ทธ์ค‘ $A$๊ฐ€ ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์„ ์ถœ๋ ฅํ•˜๋ผ. ์ดํ™˜์ด๋Š” ํ•ญ์ƒ ์ •ํ™•ํ•œ ๋‹ต์„ ์“ฐ๊ธฐ ๋•Œ๋ฌธ์—,

www.acmicpc.net



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

๋ฌธ์ž์—ด์˜ ์ˆซ์ž ๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋‹ค.
A, B ๋ชจ๋‘ 1~999 ์ด๋ฏ€๋กœ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅํ–ˆ์„๋•Œ 1~2889 ๋ฒ”์œ„๊ฐ€ ๋‚˜์˜ค๋Š” ๊ฒƒ ๊ฐ™๋‹ค.

์ˆซ์ž์˜ ์ž๋ฆฟ์ˆ˜๋Š” 1~3 ์ด๋‹ค.

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

#include<iostream>
#include<string>

using namespace std;

int main(void) {
	int A, B = 0, count, temp = 0, ac, len;
	string s;
	
	cin >> s;
	
	for (int i = 1, j; i <= 3; i++)	// ์ž๋ฆฟ์ˆ˜ ์ฆ๊ฐ€ 1~3 ๋ฐ˜๋ณต๋ฌธ
	{
		A = stoi(s.substr(0,i));
		count = 1;
		for (j = i; j < s.size(); j+=len, count++)	// ์ˆซ์ž๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ์ธ์ง€ ๊ฒ€์‚ฌ
		{
			ac = A + count;
			len = to_string(ac).size();
			temp = stoi(s.substr(j, len));
			if (ac != temp)
				break;
		}
		if (j == s.size()) {	// ๋งˆ์ง€๋ง‰๊นŒ์ง€ ๊ฒ€์‚ฌํ–ˆ์œผ๋ฉด B๋ฅผ ์ €์žฅ
			B = temp;
			break;
		}
	}

	cout << A << " ";
	cout << ((B > A) ? B : A);	// B๊ฐ€ ์žˆ๋‹ค๋ฉด ํ•ญ์ƒ B>A

	return 0;
}

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

  • ๋ณ€์ˆ˜
    • s : ๋ฌธ์ž์—ด
    • A, B : A, B๋ฅผ ์ €์žฅํ•˜๊ณ  B๋Š” ์ €์žฅํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ž…๋ ฅ๊ฐ’์˜ ์ตœ์†Œ๊ฐ’์ธ 1๋ณด๋‹ค ์ž‘์€ 0์„ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ํ•œ๋‹ค.
    • count : ๋ฐ˜๋ณต๋ฌธ์—์„œ A๋ฅผ 1์”ฉ ์ฆ๊ฐ€์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ณ€์ˆ˜
    • ac : A๋ฅผ count๋งŒํผ ์ฆ๊ฐ€์‹œํ‚จ ์ˆซ์ž
    • len : ac์˜ ์ž๋ฆฟ์ˆ˜
    • temp : ac์™€ ๋น„๊ตํ•˜๊ธฐ์œ„ํ•ด ๋ฌธ์ž์—ด s์—์„œ ์ถ”์ถœํ•œ ์ˆซ์ž
  • ๋ฐ˜๋ณต๋ฌธ
    • A์˜ ์ž๋ฆฟ์ˆ˜๋ฅผ 1๋ถ€ํ„ฐ 3๊นŒ์ง€ ํ‚ค์›Œ๊ฐ€๋ฉฐ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์˜ค๋ฆ„์ฐจ์ˆœ ์ˆซ์ž ์ •๋ ฌ์ด ๋˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.
    • ac์™€ ๋ฌธ์ž์—ด s์—์„œ ์ถ”์ถœํ•œ ์ˆซ์ž๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋น„๊ตํ•œ๋‹ค. ์ถ”์ถœํ• ๋•Œ ์ธ๋ฑ์Šค๋Š” ac์˜ ๊ธธ์ด len ๋งŒํผ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
    • ์•ˆ์ชฝ ๋ฐ˜๋ณต๋ฌธ์„ ์ข…๋ฃŒํ–ˆ์„๋•Œ, ๋ฌธ์ž์—ด ๋๊นŒ์ง€ ๊ฒ€์‚ฌ๊ฐ€ ์™„๋ฃŒ๋๋‹ค๋ฉด ์˜ฌ๋ฐ”๋ฅธ A๋ฅผ ์ฐพ์•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ  B๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.
  • ์ถœ๋ ฅ
    • B๊ฐ€ A๋ณด๋‹ค ํฌ์ง€ ์•Š๋‹ค๋ฉด ์ œ๋Œ€๋กœ๋œ B๊ฐ€ ์•„๋‹ˆ๋‹ค == A๋ฅผ ๋‘ ๋ฒˆ ์ถœ๋ ฅํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • ๋ฌธ์ž์—ด s์—์„œ ์ˆซ์ž๋ฅผ ์ถ”์ถœํ•  ๋•Œ, A์˜ ์ž๋ฆฟ์ˆ˜๋ณด๋‹ค ์ปค์ง€๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•˜์ง€ ๋ชปํ•ด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ–ˆ๋‹ค.
  • B๋ฅผ ์ž˜ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด์„œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.
  • ๋ฌธ์ž์—ด์„ ์ˆซ์ž๋กœ ํŒŒ์‹ฑํ•˜๋Š” ๋ฌธ์ œ์—ฌ์„œ ๋งŽ์ด ์–ด๋ ค์šธ ๊ฒƒ์ด๋ผ ๊ฒ์ด ๋“ค์—ˆ๋Š”๋ฐ, ์ƒ๊ฐ๋ณด๋‹ค ์ˆ˜์›”ํ•˜๊ฒŒ ํ’€๋ ธ๋‹ค.
  • std::stoi() ์™€ std::to_string() ํ•จ์ˆ˜๋ฅผ ๊ฒ€์ƒ‰ํ•ด์„œ ์•Œ์•„๋ณด์•˜๋‹ค. ๊ธฐ์–ตํ•˜๋„๋ก ํ•˜์ž.

 

728x90