goosen   6년 전

혹시 문제에 3<N<=5000이라는 조건이있긴한데 if문을이용해서 이것까지 구현해야되나요??

2틀째 최대한 노력해봤는데 어디가 잘못된건지 조금의 조언부탁드립니다.. 해결은 혼자해보고싶네용 ㅠㅠ 

onjo0127   6년 전

입력 범위는 반드시 체크하지 않으셔도 됩니다.

경우를 나눠서 풀기는 조금 힘든 문제입니다. 반복문을 활용해보세요!

djm03178   6년 전

11이 입력으로 들어오면 1 2를 출력하는 게 아니라 둘을 합한 3을 출력해야 됩니다.

goosen   6년 전

onjo0127님 제가 결과창을 잘못이해해서 5kg 3kg따로따로 호출했네요.. temp+temp2했더니 맞았다곤떴습니다.

저는 어떻게해야될지를몰라서 N이 50까지의 경우의수를 그리고 거기서 규칙을 찾아내서 이렇게 if문을 왕창때려박았네요.. ㅠㅠ

알고리즘은 이런식으로 하면안되는거겠쬬?? 반복문을 어떤식으로 활용할수있나요??

djm03178   6년 전

가능한 모든 경우의 수를 전부 계산해볼 수도 있고 다이나믹 프로그래밍 기법을 쓸 수도 있지만 지금처럼 규칙 찾아서 하는 게 시간상으론 사실 제일 좋습니다. 분기 수를 줄이는 것 정도겠네요.

goosen   6년 전

djm03178님 이런식으로 하는것도 나쁘지않다는 말씀이신거죠?? 이문제를 접했을때 반복문을 사용해야겠다는 생각조차 안났네요 .. 

규칙찾는게 저의경우에는 시간이 좀 걸리는데 시간상으로 제일 좋다고하시니 뭔가 ...공감은 잘안되네요

다이나믹프로그래밍기법은 또뭐고요 하하하... 앞으로 가야할길이 많이남았네요 ㅠㅠ 답변감사합니다  


djm03178   6년 전

컴퓨터가 실행하는 데에 걸리는 시간을 말한 겁니다. 원래 알고리즘의 목표는 컴퓨터가 계산을 빠르고 적은 메모리로 해내게끔 하는 거니까 그 방면에 있어서는 전혀 나쁠 게 없다는 의미입니다. 경우의 수가 아주 많은 것도 아니고요.

이 문제는 사실상 그냥 규칙 찾는 수학 문제로 보셔도 됩니다.

goosen   6년 전

@djm03178 아하 그렇군요ㅎㅎ 답변감사합니다 

댓글을 작성하려면 로그인해야 합니다.