gim8090   1년 전

초짜인데 for문 햇갈려서 친구한테 도움청했더니 작성해주고 그냥 가버렸네요

그러니까 for문안에 if가 만족 될때까지 for문이 반복 된다는건가요?

정확한 해설이 궁금합니다


Green55   1년 전

처음 if문은 N이 문제에서 주어지는 범위 안이 맞는지 확인하는 if문 같습니다.

항상 채점시 인풋은 문제에 제시하는 범위를 지켜서 들어오기 때문에 필요 없는 if문입니다.


이중 for문에 중괄호가 하나 생략되어 있는데 다시 쓰면 아래 코드와 같습니다.

봉지의 수가 N을 넘을리는 없으니 모든 ac, bc를 0부터 하나하나씩 시도해가면서,

ac와 bc의 무게의 합이 N을 만족하면  to에 답을 저장하고 있습니다.


이때 이중 for문을 돌면서 문제의 답을 만족시키는 경우의 수는 여러개 일 수 있습니다.

to에는 최종적으로 제일 마지막에 조건을 만족한 경우의 수가 저장되게 됩니다.

이는 for문의 구조상 경우의 수 들 중 ac가 가장 큰 경우일 수 밖에 없는데요.

5Kg짜리 설탕을 최대한 많이 챙기는것이 총 봉지 수를 줄이는데 이득이므로,

마지막에 저장된 to의 값이 결국 답이 됩니다.


마지막 printf문은 to가 한번도 바뀌지 않고 0으로 남아있는 경우, 즉 만족하는 답이 없는 경우에 -1을 출력하게 하고 있습니다.

gim8090   1년 전

~?~:~ 이부분도 같이 설명해주셨네요

따른 문제를 풀어보려해도 for문을 여러개 넣는걸 아직 못하겠네요

그래도 덕분에 for문에 대한 개념이 잡힌것 같습니다 풀이 써주셔서 감사합니다.

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