7-T 1학년, dp 배열의 초기화 관련
348
작성한 질문수 7
안녕하세요 큰돌님
1학년 문제를 풀었는데, dp배열 초기화의 유무에 따라 답이 갈립니다. 저는 0이라는 값도 결과값이 될 수 있는 값 중 하나라고 생각하여 dp배열을 -1로 초기화했습니다. 그런데 이런 경우 답이 틀렸다고 나옵니다.
오히려, fill을 이용한 별도의 초기화 없이 기본적은 0으로 상태를 두면 맞다고 나옵니다.
제가 어떤 점을 잘못 생각한건가요?
감사합니다.
소스코드 : http://boj.kr/aaa7dca582ec4827803e5b5826b6cdb5
답변 2
0
안녕하세요 태승님 ㅎㅎ
-1도 괜찮습니다. 다만,
fill 부분이 잘못 된거 같아요.
for(ll i = 0 ; i < N ; i++) cin >> arth[i];
fill(&dp[0][0], &dp[0][0]+21*102, -1);이렇게 해보시겠어요?
감사합니다.
0
안녕하세요, 인프런 AI 인턴이에요.
dp 배열 초기화에 대해서 이야기해보도록 할게요. dp 배열은 다이나믹 프로그래밍에서 사용하는 배열이구요, 답을 구하는 과정에서 중간 결과를 저장하는 역할을 합니다.
dp 배열의 초기값은 문제에 따라 다르게 설정될 수 있습니다. 일반적으로는 최적의 값을 구하는 것이 목적이므로, 최솟값을 나타내는 Integer.MAX_VALUE 또는 최대값을 나타내는 -1 등으로 초기화할 수 있습니다.
하지만, 문제에서 0이 특별한 의미를 가지는 경우라면 초기값은 0으로 설정해야 합니다. 예를 들어, 피보나치 수열을 구하는 문제에서 dp[0]의 값은 0으로 설정해야 합니다.
정확한 원인은 제가 코드를 직접 분석해보지 않았기 때문에 확실하진 않지만, 아마도 문제의 조건에서 0을 특별하게 처리한 부분이 있어서 그럴 수도 있어요.
추가로, dp 배열을 초기화할때는 fill() 메소드를 활용하시던지, 반복문을 통해 직접 초기화하는 방법을 사용하셔도 됩니다.
참고로, dp 배열을 정상적으로 초기화하였는데도 답이 틀리게 나온다면, 다른 부분의 문제일 가능성이 있으니 확인해보셔야 합니다.
여기서 말씀하신 문제로는 상세한 내용을 파악하기 어려워요. 지식공유자 또는 다른 개발자들에게 질문하거나, 코드 리뷰를 요청하는 것도 좋은 방법이 될 수 있어요.
무엇이든 도움이 필요하시면 언제든지 물어보세요. 좋은 결과 얻으시길 바래요!
4 - A
0
22
2
코딩살구클럽 입장이 안됩니다
0
60
2
4-F 경우의 수 질문입니다.
0
32
2
코딩살구클럽 가입이 안됩니다.
0
74
2
살구 클럽에 대한 질문있습ㄴ디ㅏ
0
54
1
교안 158페이지 문의드립니다
0
44
2
코딩살구클럽 관련 건의사항
0
114
1
코살에 19942 다이어트 문제에 N의 범위가 빠져있슴니다
0
44
1
진행 방법 질문드립니다!
0
80
2
2-I) 왜 이 문제가 그래프이론 카테고리에 있는지 잘 모르겠습니다.
0
63
2
2주차 개념#12 트리 순회
0
32
2
백준사이트가 종료된다고 합니다.
0
315
2
백준 서비스 종료
9
950
1
sk 하이닉스 코테 대비
0
385
2
3-G 최댓값 질문
0
54
1
모듈러 연산 값이 10이 아닌 경우도 있지 않나요?
0
84
2
3-I 코드 질문드립니다.
0
65
2
3-N 질문 있습니다.
0
68
2
학습방법
0
105
2
4-H 질문 있습니다 (코드 리뷰)
0
69
2
코딩테스트 어디까지 준비해야 하는지 질문이 있습니다.
0
182
2
2-O 반례가 무엇일지 어떤 부분이 틀렸는지 잘 모르겠습니다.
0
72
2
2주차 개념 #4-2. 인접행렬 질문있습니다.
0
65
2
1-A 문제풀이 후 궁금한 점이 생겨서 질문드립니다.
0
53
2





