일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
- Animation State Machine
- 일시정지
- rotation
- rigidbody
- Blend Type
- 플레이어 방향전환
- Prefabs
- 플레이어 이동
- 스크롤링
- Parallax
- CSharp #자료구조
- LayerMark
- Transform
- Ainimation Blending
- Object Poling
- Unity
- Vector3
- raycast
- 유니티
- Hpbar
- 패럴렉스
- apk
- 2D슈팅게임
- 프리팹
- joystick
- Object Pooling
- Scrooling
- Hp바
- 오브젝트 풀링
- raycasting
- Today
- Total
주녘공부일지
[프로그래머스 C#] Lv.4 올바른 괄호의 갯수 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12929
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1. 정답코드 및 핵심 아이디어, 유의사항
어느 한 괄호 안에 n개의 괄호쌍이 들어간다면, n개의 괄호쌍으로 만들 수 있는 모든 괄호 문자열이 들어갈 수 있으므로, DP문제라고 유추할 수 있음 -> 점화식 구하는 문제
https://godgjwnsgur7.tistory.com/109
[Algorithm C#] 동적 계획법(DP) / Memoization, Tabulation
1. 동적 계획법(DP : Dynamic Programming) 복잡한 하나의 큰 문제를 여러 개의 작은 문제로 나누어 해결하는 문제해결 방법 중 하나 - 작은 문제의 연산 결과를 저장해놓았다가 다시 큰 문제를 해결할
godgjwnsgur7.tistory.com
DP[1] = 1쌍의 괄호의 경우는 1가지 ()
DP[2] = 2쌍의 괄호의 경우는 2가지 ()(), (())
DP[3] = 3쌍의 괄호의 경우는 5가지 (중요)
- 안에 2개의 괄호, 밖에 0개의 괄호 ((())), (()()) = DP[2] * DP[0]
- 안에 1개의 괄호, 밖에 1개의 괄호 (())() = DP[1] * DP[1]
- 안에 0개의 괄호, 밖에 2개의 괄호 ()(()), ()()() = DP[0] * DP[2]
( 곱셈 연산이 들어가기 때문에 DP[0]은 1로 계산 )
DP[n] = DP[0]*DP[n-1] + DP[1]*DP[n-2] +ㆍㆍㆍ+ DP[n-1]*DP[0] ( DP[0] = 1 )
ex) DP[4] = DP[3]*DP[0] + DP[2]*DP[1] + DP[1]*DP[2] + DP[0]*DP[3] = 5 + 2 + 2 + 5 = 14
이는, 카탈란 수인데, 이와 관련된 더 자세한 내용은 하단 블로그 링크 참조
https://plusthemath.tistory.com/445
[더플러스수학] 카탈란 수 - 점화식(3)
카탈란 수란 무엇인가?에 대한 글 2021.08.02 - [수학과 공부이야기] - [더플러스수학] 카탈란 수 (1) [더플러스수학] 카탈란 수 (1) 이산수학 최경식(경문사)에서의 예에서 시작해보자. 요금이 \(\display
plusthemath.tistory.com
정답 풀이 코드
public class Solution
{
public int solution(int n)
{
int[] dp = new int[n + 1];
dp[0] = 1;
dp[1] = 1;
for (int i = 2; i <= n; i++)
{
int num = i - 1;
for (int j = 0; j < i; j++)
dp[i] += dp[j] * dp[num - j];
}
return dp[n];
}
}
'Programmers - C# > CodingTest Lv.4' 카테고리의 다른 글
[프로그래머스 C#] Lv.4 지형 이동 (0) | 2024.02.02 |
---|---|
[프로그래머스 C#] Lv.4 지형 편집 (1) | 2024.02.01 |
[프로그래머스 C#] Lv.4 쿠키 구입 (0) | 2024.01.18 |