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)

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

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

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

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

์ตœ๊ทผ ๊ธ€

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

STUDY

๋ฐฑ์ค€ 5546 _ ํŒŒ์Šคํƒ€
์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ/๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜

๋ฐฑ์ค€ 5546 _ ํŒŒ์Šคํƒ€

2020. 12. 5. 18:30
728x90

www.acmicpc.net/problem/5546

 

5546๋ฒˆ: ํŒŒ์Šคํƒ€

์ƒ๊ทผ์ด๋Š” ๋งค์ผ ์ €๋…์œผ๋กœ ํŒŒ์Šคํƒ€๋ฅผ ๋งŒ๋“ค์–ด ๋จน๋Š”๋‹ค. ์ƒ๊ทผ์ด๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ํŒŒ์Šคํƒ€๋Š” ์ด ์„ธ ์ข…๋ฅ˜๋กœ ํ† ๋งˆํ†  ์†Œ์Šค, ํฌ๋ฆผ ์†Œ์Šค, ๋ฐ”์งˆ ์†Œ์Šค์ด๋‹ค. ์ƒ๊ทผ์ด๋Š” ์•ž์œผ๋กœ N์ผ ๋™์•ˆ ๋จน์„ ํŒŒ์Šคํƒ€๋ฅผ ๊ณ„ํšํ•˜๋ ค๊ณ 

www.acmicpc.net


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

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

int main(void) {
	ios::sync_with_stdio(false);
	cin.tie(NULL);
	int a[101] = { 0, }, dp[101][4][4] = { 0, };
	int N, K;

	cin >> N >> K;

	while (K--) {
		int t1, t2;
		cin >> t1 >> t2;
		a[t1] = t2;
	}

	for (int i = 1; i <= 3; i++) {
		for (int j = 1; j <= 3; j++) {
			if (a[1]!=0 && i != a[1]) 
				continue;
			if (a[2]!=0 && j != a[2]) 
				continue;
			dp[2][i][j] = 1;
		}
	}

	for (int i = 3; i <= N; i++) {
		for (int j = 1; j <= 3; j++) {
			if (a[i]!=0 && j != a[i]) 
				continue;
			for (int k = 1; k <= 3; k++) {
				if (a[i - 1] != 0 && k != a[i - 1])
					continue;
				for (int l = 1; l <= 3; l++) {
					if (j != k || j != l) {
						dp[i][k][j] = (dp[i][k][j] + dp[i - 1][l][k]) % 10000;
					}
					
				}
			}
		}
	}
    
	int result = 0;
	for (int i = 1; i <= 3; i++) {
		for (int j = 1; j <= 3; j++) {
			result = (result + dp[N][i][j]) % 10000;
		}
	}
	cout << result;
	return 0;
}

 

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

dp [n ์ผ์งธ][n-1์ผ์งธ ์Œ์‹][n ์ผ์งธ ์Œ์‹] = ๊ฒฝ์šฐ์˜ ์ˆ˜

์™€ ๊ฐ™์€ dp ๋ฐฐ์—ด๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€๋‹ค

 

๋ฐฑ์ค€์— ์žˆ๋Š” ์˜ˆ์‹œ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ํ•œ ๋ฒˆ ํ’€์ดํ•ด๋ณด๋ฉด

1์ผ์งธ์—๋Š” 1๋ฒˆ ํŒŒ์Šคํƒ€, 3์ผ์งธ์—๋Š” 1๋ฒˆ ํŒŒ์Šคํƒ€, 4์ผ์งธ์—๋Š” 2๋ฒˆ ํŒŒ์Šคํƒ€๋ผ๊ณ  ์ง€์ •์ด ๋˜์–ด์žˆ๋‹ค

 

1์ผ์งธ๋Š” 1๋ฒˆ์œผ๋กœ ์„ธํŒ…์ด ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์—, dp [2์ผ์งธ][1์ผ์งธ ์Œ์‹=1][2์ผ์งธ ์Œ์‹]๋งŒ dp์— ๊ฐ’์ด ์ €์žฅ๋  ๊ฒƒ์ด๋‹ค

2์ผ์งธ ์Œ์‹์€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์œผ๋ฏ€๋กœ, ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์€ 1, 2, 3์ด๊ณ  ๊ฒฝ์šฐ๋Š” ๊ฐ๊ฐ 1๊ฐœ์ด๊ธฐ ๋•Œ๋ฌธ์—

์•„๋ž˜์™€ ๊ฐ™์ด dp์— ์ €์žฅ๋œ๋‹ค

๊ทธ ์™ธ์—๋Š” ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”๋กœ ์ธํ•ด 0์œผ๋กœ ๊ฐ’์ด ์ €์žฅ๋˜์–ด์žˆ๋‹ค

๊ทธ๋‹ค์Œ์ธ 3์ผ ์งธ๋ฅผ ์‚ดํŽด๋ณด๋ฉด, 3์ผ์งธ์˜ ์Œ์‹์€ 1๋ฒˆ ํŒŒ์Šคํƒ€๋กœ ๊ณ ์ •์ด ๋˜์–ด์žˆ๋‹ค

๋”ฐ๋ผ์„œ dp[3์ผ์งธ][2์ผ์งธ ์Œ์‹][3์ผ์งธ ์Œ์‹=1]๋งŒ dp์— ๊ฐ’์ด ์ €์žฅ ๋  ๊ฒƒ์ด๊ณ 

2์ผ์งธ ์Œ์‹์œผ๋กœ ์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ 1, 2, 3 ์ด 3๊ฐ€์ง€๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค

์ด๋•Œ, 2์ผ์งธ์˜ ํŒŒ์Šคํƒ€๊ฐ€ 1๋ฒˆ์ด ๋  ๊ฒฝ์šฐ 1 1 1๋กœ 3์ผ ๋™์•ˆ ๊ฐ™์€ ํŒŒ์Šคํƒ€๋ฅผ ๋จน๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋˜๋ฏ€๋กœ, ์ด๋Š” ๋ฐฐ์žฌ์‹œ์ผœ์ค€๋‹ค(if (j != k || j!= l))

๋‚˜๋จธ์ง€๋„ ๋™์ผํ•˜๊ฒŒ ์ง„ํ–‰๋˜์–ด ์ตœ์ข…์ ์œผ๋กœ 6์ด๋ผ๋Š” ๊ฐ’์ด ๋„์ถœ๋œ๋‹ค

 

 

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

728x90
์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)
    '์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ/๋ฐฑ์ค€ ์•Œ๊ณ ๋ฆฌ์ฆ˜' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • ๋ฐฑ์ค€ 11053 _ ๊ฐ€์žฅ ๊ธด ์ฆ๊ฐ€ํ•˜๋Š” ๋ถ€๋ถ„ ์ˆ˜์—ด
    • ๋ฐฑ์ค€ 2624 _ ๋™์ „ ๋ฐ”๊ฟ”์ฃผ๊ธฐ
    • ๋ฐฑ์ค€ 1240 _ ๋…ธ๋“œ์‚ฌ์ด์˜ ๊ฑฐ๋ฆฌ
    • ๋ฐฑ์ค€ 2178 _ ๋ฏธ๋กœ ํƒ์ƒ‰
    mooon๐ŸŒ™
    mooon๐ŸŒ™
    ๊ฐœ๋ฐœ ๊ณต๋ถ€ ๊ธฐ๋ก

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