mooon๐ŸŒ™
STUDY
mooon๐ŸŒ™
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (170)
    • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ (147)
      • ๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (53)
      • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] Lv1 (13)
      • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ž…๋ฌธ (54)
      • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] SQL ๊ณ ๋“์  Kit (27)
    • BACK (4)
      • Spring (3)
      • PHP (0)
    • FRONT (5)
    • DevOps (8)
      • Jenkins (8)
    • GitHub๐ŸŒฑ (2)
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (1)
      • SQL (1)
    • Error ๐Ÿ’ฅ (0)
      • php (2)
    • ๐Ÿ˜‹ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • โญ ๊นƒํ—ˆ๋ธŒ
  • ๐Ÿ’• ๋ฐฉ๋ช…๋ก
  • ๐Ÿ’ฅ ํƒœ๊ทธ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • SQL ๊ณ ๋“์  Kit
  • ๋ฐฑ์ค€
  • ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • SQL
  • Python
  • c++
  • DevOps
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ž…๋ฌธ

์ตœ๊ทผ ๊ธ€

250x250
hELLO ยท Designed By ์ •์ƒ์šฐ.
mooon๐ŸŒ™

STUDY

๋ฐฑ์ค€ 16637 _ ๊ด„ํ˜ธ ์ถ”๊ฐ€ํ•˜๊ธฐ
์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ/๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฐฑ์ค€ 16637 _ ๊ด„ํ˜ธ ์ถ”๊ฐ€ํ•˜๊ธฐ

2020. 8. 13. 15:45
728x90

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

 

16637๋ฒˆ: ๊ด„ํ˜ธ ์ถ”๊ฐ€ํ•˜๊ธฐ

์ฒซ์งธ ์ค„์— ์ˆ˜์‹์˜ ๊ธธ์ด N(1 ≤ N ≤ 19)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ˆ˜์‹์ด ์ฃผ์–ด์ง„๋‹ค. ์ˆ˜์‹์— ํฌํ•จ๋œ ์ •์ˆ˜๋Š” ๋ชจ๋‘ 0๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™๊ณ , 9๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™๋‹ค. ๋ฌธ์ž์—ด์€ ์ •์ˆ˜๋กœ ์‹œ์ž‘ํ•˜๊ณ , ์—ฐ์‚ฐ์ž์™€ ์ •์ˆ˜๊ฐ€

www.acmicpc.net


โœจ ๋‚ด ์†Œ์Šค ์ฝ”๋“œ

#include <iostream>
#include <string>
using namespace std;
string s;
int N, max_n = -987654321987654321;

int calcu(char op, int n1, int n2) {
	int result = 0;
	switch (op)
	{
	case '+':
		result = n1 + n2;
		break;
	case '-':
		result = n1 - n2;
		break;
	case '*':
		result = n1 * n2;
		break;

	}
	return result;
}

void func(int n, int sum, char op) {
	//ํ˜„์žฌ ์œ„์น˜๊ฐ€ ๋ฌธ์ž์—ด ๊ธธ์ด๋ณด๋‹ค ํฌ๋ฉด ์ข…๋ฃŒ
	if (n > N - 1) {
		if (max_n < sum) {
			max_n = sum;
		}
		return;
	}
    //๊ด„ํ˜ธ ๊ณ„์‚ฐ
	if (n + 2 < N) {
		int temp = calcu(s[n + 1], s[n] - '0', s[n + 2] - '0');
        //n+2๊ฐ€ ๋งˆ์ง€๋ง‰ ์ˆซ์ž์ด๊ณ  n+3์€ ๋ฒ”์œ„๋ฅผ ๋„˜์—ˆ์„ ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ, ์ฆ‰ ๊ด„ํ˜ธ๋กœ ๋” ๋ฌถ์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ
		if (n + 3 > N - 1) {
			func(n + 4, calcu(op, sum, temp), 'x');
		}
        //๋’ค์— ๊ด„ํ˜ธ๋กœ ๋” ๋ฌถ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ฒ˜๋ฆฌ
		else {
			func(n + 4, calcu(op, sum, temp), s[n + 3]);
		}
	}
    //๊ด„ํ˜ธ ์—†์ด ๊ณ„์‚ฐ
	func(n + 2, calcu(op, sum, s[n] - '0'), s[n + 1]);

}

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(NULL);

	cin >> N;
	cin >> s;

	func(0, 0, '+');
	cout << max_n;

	return 0;
}

 

๐Ÿ™ ๋ฌธ์ œ ํ’€์ด

์žฌ๊ท€๋ฅผ ๋Œ๋ ค์„œ ๋ชจ๋“  ๊ฒฝ์šฐ๋ฅผ ๋‹ค ํƒ์ƒ‰ํ•ด๋ณด๊ณ  ๊ทธ ์ค‘์—์„œ ์ตœ๋Œ€๊ฐ’์„ ์ฐพ๋Š”๋‹ค

'์ •๋‹ต์€ 2^31๋ณด๋‹ค ์ž‘๊ณ , -2^31๋ณด๋‹ค ํฌ๋‹ค' ๋ผ๋Š” ์กฐ๊ฑด์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— max_n์˜ ์ดˆ๊ธฐ๊ฐ’์„ -2^31๋กœ ์„ค์ •

 

 

+) ๋‹ค์Œ์—๋Š” ์ดˆ๊ธฐ๊ฐ’ ์„ค์ • ๋Œ€์‹  max()ํ•จ์ˆ˜ ์‚ฌ์šฉํ•ด์„œ ๋‹ต ๊ตฌํ•˜๋Š” ๊ฑธ ์—ฐ์Šตํ•ด์•ผ ๋  ๋“ฏ

 

โญ ๋ฌธ์ œ ํ’€์ด ๊ฒฐ๊ณผ

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    '์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ/๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ๋ฐฑ์ค€ 1018 _ ์ฒด์ŠคํŒ ๋‹ค์‹œ ์น ํ•˜๊ธฐ
    • ๋ฐฑ์ค€ 11399 _ ATM
    • ๋ฐฑ์ค€ 9421 _ ์†Œ์ˆ˜์ƒ๊ทผ์ˆ˜
    • ๋ฐฑ์ค€ 4811 _ ์•Œ์•ฝ
    mooon๐ŸŒ™
    mooon๐ŸŒ™
    ๊ฐœ๋ฐœ ๊ณต๋ถ€ ๊ธฐ๋ก

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”