문제가
▶ 'fn그래프'는 순위와 인원수를 인수로 받아 그래프를 계산하는 함수이다.
▶ 순위는 1회전 순위이고, 인원수는 선수명을 기준으로 계산한 전체 인원수이다.
▶ 그래프는 인원수에서 순위를 뺀 값만큼 "●"를 반복하여 표시하시오.
[표시 예: 인원수가 8이고 순위가 1인 경우 ---> ●●●●●●●]
▶ COUNTA 함수와 FOR문 사용
정답이

인데 첫줄부터 마지막 줄 까지 각각 뭘 의미하는 건가요 ㅠㅠ if문이랑 select case문만 했는데 for문 처음보네요...
안녕하세요.
For문은 같은 작업을 정해진 횟수만큼 반복할 때 사용하는 반복문입니다. 이 문제에서는 "●"를 여러 번 붙여야 하므로 For문을 사용합니다.
정답 코드를 한 줄씩 보면 다음과 같습니다.
Public Function fn그래프(순위, 인원수)fn그래프라는 사용자 정의 함수를 만드는 부분입니다.
함수를 사용할 때 순위와 인원수, 두 개의 값을 전달받겠다는 뜻입니다.
예를 들어 순위가 1이고 전체 인원수가 8이면
fn그래프(1, 8)과 같은 상태로 함수가 실행됩니다.
fn그래프 = ""함수가 반환할 결과를 처음에는 빈 문자열로 만들어 놓는 것입니다.
즉, 처음 상태는
fn그래프 = 아무것도 없음입니다.
For i = 1 To 인원수 - 순위여기가 For문의 시작입니다.
i라는 변수를 1부터 인원수-순위까지 하나씩 증가시키면서 아래 명령을 반복하라는 뜻입니다.
인원수가 8명이고 순위가 1위라면
인원수 - 순위
= 8 - 1
= 7이므로
For i = 1 To 7이 되어 7번 반복합니다.
fn그래프 = fn그래프 & "●"현재까지 만들어진 결과 뒤에 "●"를 하나 더 붙입니다.
7번 반복하면 다음과 같이 변합니다.
1회 → ●
2회 → ●●
3회 → ●●●
4회 → ●●●●
5회 → ●●●●●
6회 → ●●●●●●
7회 → ●●●●●●●여기서 &는 문자열을 이어 붙이는 연산자입니다.
즉,
fn그래프 = fn그래프 & "●"는 쉽게 말하면
“기존 결과에 ● 하나를 추가해라.”
라는 뜻입니다.
Next iFor문에서 한 번의 반복이 끝났다는 뜻입니다.
i를 1씩 증가시키면서 다시 For문으로 돌아갑니다.
i=1 → ● 추가
i=2 → ● 추가
i=3 → ● 추가
...
i=7 → ● 추가7회 반복이 끝나면 For문을 빠져나옵니다.
End Functionfn그래프 함수가 끝났다는 뜻입니다.
따라서 전체 코드를 말로 풀면 아주 간단합니다.
Public Function fn그래프(순위, 인원수)
fn그래프 = ""
For i = 1 To 인원수 - 순위
fn그래프 = fn그래프 & "●"
Next i
End Function“전체 인원수에서 순위를 뺀 횟수만큼 ●를 하나씩 반복해서 붙여라.”라는 코드입니다.
예를 들어 8명 중 3위라면
8 - 3 = 5이므로 For문이 5번 실행되어
●●●●●가 표시됩니다.
그리고 문제에 나온 COUNTA 함수는 이 VBA 코드 안에서 사용하는 것이 아니라, 전체 인원수를 구해서 fn그래프 함수의 두 번째 인수로 전달할 때 사용합니다.
즉 워크시트에서는 문제의 셀 범위에 따라 대략
=fn그래프(순위셀,COUNTA(선수명범위))와 같은 형태가 됩니다.
If문이 “조건에 따라 할 일을 선택하는 것”이라면, For문은 “같은 일을 몇 번 반복할 것인지 정하는 것”이라고 기억하시면 가장 쉽습니다.
즐거운 하루 되세요.
-
관리자2026-09-14 10:22:20
안녕하세요.
For문은 같은 작업을 정해진 횟수만큼 반복할 때 사용하는 반복문입니다. 이 문제에서는"●"를 여러 번 붙여야 하므로 For문을 사용합니다.정답 코드를 한 줄씩 보면 다음과 같습니다.
Public Function fn그래프(순위, 인원수)fn그래프라는 사용자 정의 함수를 만드는 부분입니다.
함수를 사용할 때 순위와 인원수, 두 개의 값을 전달받겠다는 뜻입니다.예를 들어 순위가 1이고 전체 인원수가 8이면
fn그래프(1, 8)과 같은 상태로 함수가 실행됩니다.
fn그래프 = ""함수가 반환할 결과를 처음에는 빈 문자열로 만들어 놓는 것입니다.
즉, 처음 상태는
fn그래프 = 아무것도 없음입니다.
For i = 1 To 인원수 - 순위여기가 For문의 시작입니다.
i라는 변수를 1부터인원수-순위까지 하나씩 증가시키면서 아래 명령을 반복하라는 뜻입니다.인원수가 8명이고 순위가 1위라면
인원수 - 순위 = 8 - 1 = 7이므로
For i = 1 To 7이 되어 7번 반복합니다.
fn그래프 = fn그래프 & "●"현재까지 만들어진 결과 뒤에
"●"를 하나 더 붙입니다.7번 반복하면 다음과 같이 변합니다.
1회 → ● 2회 → ●● 3회 → ●●● 4회 → ●●●● 5회 → ●●●●● 6회 → ●●●●●● 7회 → ●●●●●●●여기서
&는 문자열을 이어 붙이는 연산자입니다.즉,
fn그래프 = fn그래프 & "●"는 쉽게 말하면
“기존 결과에 ● 하나를 추가해라.”
라는 뜻입니다.
Next iFor문에서 한 번의 반복이 끝났다는 뜻입니다.
i를 1씩 증가시키면서 다시For문으로 돌아갑니다.i=1 → ● 추가 i=2 → ● 추가 i=3 → ● 추가 ... i=7 → ● 추가7회 반복이 끝나면 For문을 빠져나옵니다.
End Functionfn그래프함수가 끝났다는 뜻입니다.따라서 전체 코드를 말로 풀면 아주 간단합니다.
Public Function fn그래프(순위, 인원수) fn그래프 = "" For i = 1 To 인원수 - 순위 fn그래프 = fn그래프 & "●" Next i End Function“전체 인원수에서 순위를 뺀 횟수만큼 ●를 하나씩 반복해서 붙여라.”라는 코드입니다.
예를 들어 8명 중 3위라면
8 - 3 = 5이므로 For문이 5번 실행되어
●●●●●가 표시됩니다.
그리고 문제에 나온 COUNTA 함수는 이 VBA 코드 안에서 사용하는 것이 아니라, 전체 인원수를 구해서
fn그래프함수의 두 번째 인수로 전달할 때 사용합니다.즉 워크시트에서는 문제의 셀 범위에 따라 대략
=fn그래프(순위셀,COUNTA(선수명범위))와 같은 형태가 됩니다.
If문이 “조건에 따라 할 일을 선택하는 것”이라면,For문은 “같은 일을 몇 번 반복할 것인지 정하는 것”이라고 기억하시면 가장 쉽습니다.즐거운 하루 되세요.