|
|
|
|
HOME > 질문/답변 > 일반질문 |
 |
|
|
 |
작성일 : 11-08-19 15:43
|
질문이요~
|
|
|
글쓴이 :
관리자
 조회 : 4,493
|
컴활1급 2010년 3회 53번 문제요.
Counter = 0 Sum = 0
Do while Counter<=3 (1) Counter = Counter + 1 (2) Sum = Sum + Counter (3)
Loop
counter 값을 0부터 시작해서 1, 2, 3 차례대로 넣어서 counter 값이 3일 때 sum값을 추출해서 답이 10이잖아요.
맨 처음 (1)의 counter에 0을 넣으면 (2)의 counter는 1이 되고 (3)에서도 1값으로 계산을 해서 sum을 추출하는 과정이잖아요. 그 다음에 (1)의 counter에 1이 들어가고 (2)의 counter는 2가되고 sum을 내고 그 다음 (1)의 counter는 2가 되고 (2)의 counter는 3이 되고 sum이 6이 되죠? --> 네 맞습니다.
여기서 counter 값이 3이 되었으니까 빠져나와서 6으로 보면 안될까요? (1)에서 정의하는 counter와 (2),(3)에서 정의하는 counter가 다른 건가요? 왜 (1)의 counter가 3일때 sum 값 10이 답인지 잘 모르겠어요ㅠ.ㅠ
프로그램 구현 명령들은 어디에 어떤 조건이 있느냐에 따라 값의 흐름이 자유자제로 바뀝니다. 이 문제는 먼저 조건비교를 하고 개수와 합계를 넣어주지만 만약 개수와 합계를 넣고 조건비교를 한다면 형식은 또 달라지게 되겠죠
회원님의 질문흐름을 제가 정확하게 이해한것인지 모르겠지만 어떤 개수를 누적하면 어떤 결과가 나오는 흐름을 미리 잡아놓고 조건에 부합하지 않는 부분을 그냥 제외한다는 의미로 이해했는데요, 물론 정확하게 그 구분을 할수 있다면 그게 가장 좋은 방법이지만 비전문가들이 그것을 구분하기는 대단히 어렵습니다. 즉 좀 원시적이더라도 저의 풀이처럼 값을 하나씩 넣어 보는 것이 사실 그나마 낳은 방법이죠.
마지막 질문에 왜 카운트가 3일때 누적값이 10인가를 물으셨는데요. 이전카운트 0일때 조건만족 --> 현재카운트 1 합계 1 이전카운트 1일때 조건만족 --> 현재카운트 2 합계 3 이전카운트 2일때 조건만족 --> 현재카운트 3 합계 6 이전카운트 3일때 조건만족 --> 현재카운트 4 합계 10 이전카운트 4일때 조건불만족
즉 비교를 하는 것은 3까지되고 4에서 걸리게 되지만 현재카운터는 4, 현재 누적값은 10으로 이미 4일때까지가 계산된 흐름이라고 할수 있습니다.
쉽지않죠^^ 이런 부분은 여러회 연습을 하셔서 흐름을 이해하시어야만 풀이가 가능합니다. 보통 강의중에 한회차에 1문제정도는 이런풀이가 있고 계속 자세히 설명드리게 되니 참고하세요^^
|
|
|
|