1) Rank (i) = 1 이라고 Rank 에 동일한 숫자를 입력키 위해 8~10번 반복문을 사용하기 보다는,
명령문 18번 앞에 Rank(i)= 1 이라는 명령문을 삽입하여 주면 될 것 같은 데....
이를 위해서 반복문이 사용한다는 것은 비효율적이어서 이를 생각해 내기가 너무 어렵웠네요
( 실기 시험에서 알고리즘 이해는 제시되지 않는 내용이어서, 우선 문제를 보고, 그다음에 플로챠트를 보면서 문제 풀면서 잘 이해가 되지 않는 경우에 알고리즘 이해나 정답을 보면서 검토하고 있는 데, 이 문제의 경우, 혹시 답항 보기가 있었다면 디버깅이라도 돌려 보면서 생각해보았을 텐데, 앞의 알고리즘 이해를 보지 않은 상태에서 이를 생각해 내기에는 좀 .... 그런데 실제 실기 문제에서도 이런 유형이 출제되는 지요?? )
2) 만약 Rank (10)이라고 배열 선언만 하고, Rank(i)=1 이란 배열값 할당이 없는 상태에서, Rank(i)= Rank(i)+1 이라는 명령문을 사용한다면,오류인지요??
아니면 rank(i) 에 초기값이 할당되지 않아서 0으로 인식하고 1 이라는 값을 할당하는지요??
3) 배열을 출력할때 이 문제와 같이 Jumsu , Rank 만 출력명령을 해도,교재 140 페이지 하단의 A(i) 반복문을 사용한 출력 명령문과 동일한 명령문이 되는 건지요?? 그렇다면 배열 출력문에서 궅이 반복문으로 표현할 필요가 있나요??
안녕하세요.
1), 2)
순위는 다른 상대와 비교되기 전에는 항상 1등입니다.
비교된 후에 자신보다 높지 않은 점수들만 있다면 초기의 지정된 등수 1을 그대로 출력해야 하므로 초기화하는 것은 꼭 필요합니다.
하지만 18번 전에 rank(i)=1을 하게 되면
다른 점수와 비교한 후 현재 내 점수가 낮으면 등수를 증가(밀려나게)시켜야 하는데 매번 rank(i)=1을 하게 되면 비교할 때마다 해당 위치의 등수는 1이 저장된 후 증가됩니다.
즉 자신보다 높은 점수가 있어 18번 전에 rank(i)=1을 해서 rank(i)가 1이 된 상태에서 18번에서 석차를 증가시면 rank(i)=rank(i)+1에 의해 2가 되는데, 다음 점수도 자신보다 높아 다시 등수를 증가하려고 18번쪽으로 내려오면 그 전에 rank(i)=1을 만다 rank(i)는 다시 1이 된 상태에서 증가하므로 rank(i)는 1이 되었다 다시 2가 되는 과정을 반복하게 됩니다.
알고리즘이 어려운 이유가 석차를 구하는 방법이라도 "나보다 점수가 높은 사람이 있으면 내 등수가 증가(밀려난다)라는" 기본 개념하에 순서도가 구성되는 형태는 다양할 수 있으므로 순서도를 보고 우선 출제자의 의도를 파악하는 것이 가장 중요합니다.
실제 시험에서는 해당 순서도에 대한 설명이 없는 상태에서 순서도를 파악해야 하므로 어려울 수 있습니다.
변수에 1을 누적하여 증가하는 누적 변수의 경우 반드시 초기화를 수행해야 합니다.
rank(i) = rank(i) + 1 과 같이 rank(i)도 누적되는 변수이므로 ⑧~⑩ 과정과 같은 초기화 과정이 필요합니다.
3)
배열을 출력할 경우 대표 배열의 변수명만 적으면 해당 배열의 값이 모두 출력된다는 의미입니다.
해당 부분에 빈 괄호를 만들기 위해서 반복문을 이용해 실제 각 배열의 값을 하나씩 출력하는 과정으로 표시되기도 합니다.
오늘도 즐거운 하루 되세요.
-
*2016-03-21 09:39:59
안녕하세요.
1), 2)
순위는 다른 상대와 비교되기 전에는 항상 1등입니다.
비교된 후에 자신보다 높지 않은 점수들만 있다면 초기의 지정된 등수 1을 그대로 출력해야 하므로 초기화하는 것은 꼭 필요합니다.
하지만 18번 전에 rank(i)=1을 하게 되면
다른 점수와 비교한 후 현재 내 점수가 낮으면 등수를 증가(밀려나게)시켜야 하는데 매번 rank(i)=1을 하게 되면 비교할 때마다 해당 위치의 등수는 1이 저장된 후 증가됩니다.
즉 자신보다 높은 점수가 있어 18번 전에 rank(i)=1을 해서 rank(i)가 1이 된 상태에서 18번에서 석차를 증가시면 rank(i)=rank(i)+1에 의해 2가 되는데, 다음 점수도 자신보다 높아 다시 등수를 증가하려고 18번쪽으로 내려오면 그 전에 rank(i)=1을 만다 rank(i)는 다시 1이 된 상태에서 증가하므로 rank(i)는 1이 되었다 다시 2가 되는 과정을 반복하게 됩니다.
알고리즘이 어려운 이유가 석차를 구하는 방법이라도 "나보다 점수가 높은 사람이 있으면 내 등수가 증가(밀려난다)라는" 기본 개념하에 순서도가 구성되는 형태는 다양할 수 있으므로 순서도를 보고 우선 출제자의 의도를 파악하는 것이 가장 중요합니다.
실제 시험에서는 해당 순서도에 대한 설명이 없는 상태에서 순서도를 파악해야 하므로 어려울 수 있습니다.
변수에 1을 누적하여 증가하는 누적 변수의 경우 반드시 초기화를 수행해야 합니다.
rank(i) = rank(i) + 1 과 같이 rank(i)도 누적되는 변수이므로 ⑧~⑩ 과정과 같은 초기화 과정이 필요합니다.
3)
배열을 출력할 경우 대표 배열의 변수명만 적으면 해당 배열의 값이 모두 출력된다는 의미입니다.
해당 부분에 빈 괄호를 만들기 위해서 반복문을 이용해 실제 각 배열의 값을 하나씩 출력하는 과정으로 표시되기도 합니다.
오늘도 즐거운 하루 되세요.