9251번 - LCS
수열의 길이가 가장 큰 경우가 1000이기 때문에 메모리 용량을 줄이려고
char cnt[1001][1001];
이렇게 카운터 배열을 만들었습니다. 그리고 나서, 개수를 다 세고, i(integer 형입니다) 로 정수형으로 강제 형변환 시켜 받으려 했는데
i = cnt[i][j]; (i = (int)cnt[i][j] 도 해봤습니다.)
틀렸습니다가 나오네요. 혹시 이럴 경우, 무슨 문제가 생겨서 틀린 것인지 알 수 있을까요?
참고로, int cnt[1001][1001];로 바꿔서 제출했을 때는 맞아서 알고리즘 자체는 맞는 것 같습니다.
char는 256까지 저장해요
2의 보수를 사용하는 환경에서 unsigned char는 255까지 저장하고, signed char는 127까지 저장합니다. 대부분의 시스템에서 그냥 char는 signed char입니다.
아 ㅈㅅ합니다 127입니다.
메모리 관리를 빡세게 해야 하는 문제가 아니라면 그냥 int 쓰세요.
아...!!! 이렇게 멍청한 실수를 할 줄이야.. short 랑 착각해서 몇만은 되는 줄 알았습니다. 모두 답변 감사합니다.
댓글을 작성하려면 로그인해야 합니다.
shw2495 6년 전
수열의 길이가 가장 큰 경우가 1000이기 때문에 메모리 용량을 줄이려고
char cnt[1001][1001];
이렇게 카운터 배열을 만들었습니다. 그리고 나서, 개수를 다 세고, i(integer 형입니다) 로 정수형으로 강제 형변환 시켜 받으려 했는데
i = cnt[i][j]; (i = (int)cnt[i][j] 도 해봤습니다.)
틀렸습니다가 나오네요. 혹시 이럴 경우, 무슨 문제가 생겨서 틀린 것인지 알 수 있을까요?
참고로, int cnt[1001][1001];로 바꿔서 제출했을 때는 맞아서 알고리즘 자체는 맞는 것 같습니다.