1042번 - 움
일단 제 아이디어는..
먼저 코돈 갯수가 M, DNA 서열 길이가 N이라 했을 때, 시작위치가 1~N일때 각 단백질이 만들어질 수 있는 DNA 서열상에서의 가장 왼쪽 위치를 구한 뒤, (없으면 -1) 2차원 행렬 (M*N) 에 저장해놓습니다.
그 후 1차원 행렬 (1*N)하나 만들어놓고 거기다가 DNA 길이 i까지 사용했을때 가능한 경우를 dp 방식으로 구한 뒤,
다 구하고 나서 전부 더해서 출력하는 식으로 생각을 했습니다.
서로다른 코돈이 같은 단백질에 대응하는 경우도 생각해서, 그 경우에는 그 코돈들을 다 생각했을 때 단백질이 만들어질 수 있는 가장 왼쪽의 위치만 포함하도록 했습니다.
하지만 어림도 없지, 제출하자마자 틀렸습니다가 뜨네요..
제 생각엔 이렇게하면 될 것 같은데.. 뭐가 틀렸을까요??
코드가 너무 가독성이 안 좋아서, 혹시 반례라도 주시면 너무 감사하겠습니다.
오버플로우 있는거 발견해서 단계마다 10억7로 나눠줘서 오버플로우 안나게 만들어주니까 이제 1프로에서 틀렸습니다네요 엌.
아무리 생각해도 모르겠어요 ㅠㅠ
흐어엉 117줄이 잘못됐었네요 겨우찾았습니다 흐허허ㅔㅎ
댓글을 작성하려면 로그인해야 합니다.
bansh123 3년 전
일단 제 아이디어는..
먼저 코돈 갯수가 M, DNA 서열 길이가 N이라 했을 때, 시작위치가 1~N일때 각 단백질이 만들어질 수 있는 DNA 서열상에서의 가장 왼쪽 위치를 구한 뒤, (없으면 -1) 2차원 행렬 (M*N) 에 저장해놓습니다.
그 후 1차원 행렬 (1*N)하나 만들어놓고 거기다가 DNA 길이 i까지 사용했을때 가능한 경우를 dp 방식으로 구한 뒤,
다 구하고 나서 전부 더해서 출력하는 식으로 생각을 했습니다.
서로다른 코돈이 같은 단백질에 대응하는 경우도 생각해서, 그 경우에는 그 코돈들을 다 생각했을 때 단백질이 만들어질 수 있는 가장 왼쪽의 위치만 포함하도록 했습니다.
하지만 어림도 없지, 제출하자마자 틀렸습니다가 뜨네요..
제 생각엔 이렇게하면 될 것 같은데.. 뭐가 틀렸을까요??
코드가 너무 가독성이 안 좋아서, 혹시 반례라도 주시면 너무 감사하겠습니다.