강의영상

- (1/2) for문, 2007(나) 6월 평가원 14 (고3)

- (2/2) 2007(나) 6월 평가원 14 (고3), 2004(인)/수능(홀) 19(고3), 2010(나)/수능(홀) 30(고3), if문

for문

- 문제: 1~4까지 모두 더하면?

s=0 
for(i in c(1,2,3,4)){ ## i=1,2,3,4에 대하여 아래를 반복하라.
    s=s+i ## 반복할 내용
}
s
[1] 10

- 위의 코드는 아래와 동일하다.

s=0

i=1 
s=s+i
i=2
s=s+i
i=3
s=s+i
i=4
s=s+i

s
[1] 10

2007(나) 6월/평가원 14(고3)

다음은 어느 회사의 연봉에 대한 규정이다.

(가) 입사 첫째 해 연봉은 $a$원이고, 입사 19년째 해까지의 연봉은 해마다 직전 연봉에서 8%씩 인상된다.

(나) 입사 20년째 해부터의 연봉은 입사 19년째 해 연봉의 2/3로 한다.

이 회사에 입사한 사람이 28년동안 근무하여 받는 연봉의 총합은? (단, $1.08^{18}=4$로 계산한다)

(1) $\frac{101}{2}a$

(2) $\frac{111}{2}a$

(3) $\frac{121}{2}a$

(4) $\frac{131}{2}a$

(5) $\frac{141}{2}a$

(풀이)

sal<-c()
sal[1]<- 1 ## 첫해의 연봉은 1로 하자.
for(i in 2:19){
    sal[i] = sal[i-1] * 1.08
}
sal
 [1] 1.000000 1.080000 1.166400 1.259712 1.360489 1.469328 1.586874 1.713824
 [9] 1.850930 1.999005 2.158925 2.331639 2.518170 2.719624 2.937194 3.172169
[17] 3.425943 3.700018 3.996019
for(i in 20:28){
    sal[i] = sal[19]*2/3
}
sal
 [1] 1.000000 1.080000 1.166400 1.259712 1.360489 1.469328 1.586874 1.713824
 [9] 1.850930 1.999005 2.158925 2.331639 2.518170 2.719624 2.937194 3.172169
[17] 3.425943 3.700018 3.996019 2.664013 2.664013 2.664013 2.664013 2.664013
[25] 2.664013 2.664013 2.664013 2.664013
sum(sal)
[1] 65.42238
c(101/2,111/2,121/2,131/2,141/2)
[1] 50.5 55.5 60.5 65.5 70.5

답은4번이다.

2004(인)/수능(홀) 19(고3)

자료 $x_1,x_2,\dots, x_{100}$에 대하여 다음 과정을 순서대로 시행하였다.

(가) 처음 두 수 $x_1$과 $x_2$의 평균을 구한다.

(나) $x_3$을 추가하여 $x_1, x_2, x_3$의 평균을 구한다.

(다) $x_4$을 추가하여 $x_1, x_2, x_3, x_4$의 평균을 구한다.

...

$x_{100}$을 추가하여 $x_1, x_2, x_3 ,\dots , x_{100}$의 평균을 구한다.

위의 과정을 시행할 결과, $x_1$과 $x_2$의 평균이 5이고, 자료 하나가 추가될때 마다 평균이 1씩 증가하였다. 이때 $x_{100}$의 값은?

(1) 194

(2) 196

(3) 198

(4) 200

(5) 202

(풀이)

x<-c() 
x[1]=5 
x[2]=5
for(n in 3:100){
    temp_ = mean(x[1:(n-1)])+1 ## temp_ : 1~n까지의 평균 
    sum_ = temp_ * n # 1~n까지의 합 
    x[n] = sum_ - sum(x[1:(n-1)])
}
x
  [1]   5   5   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38
 [19]  40  42  44  46  48  50  52  54  56  58  60  62  64  66  68  70  72  74
 [37]  76  78  80  82  84  86  88  90  92  94  96  98 100 102 104 106 108 110
 [55] 112 114 116 118 120 122 124 126 128 130 132 134 136 138 140 142 144 146
 [73] 148 150 152 154 156 158 160 162 164 166 168 170 172 174 176 178 180 182
 [91] 184 186 188 190 192 194 196 198 200 202

따라서 답은 5번

2010(나)/수능(홀) 30(고3)

수열 $\{a_n\}$에 대하여 첫째항부터 제 $n$항까지의 합을 $S_n$이라고 하자. 수열 $\{S_{2n-1}\}$은 공차가 -3인 등차수열이고, 수열 $\{S_{2n}\}$은 공차가 2인 등차수열이다. $a_2=1$일 때, $a_8$의 값을 구하시오.

(풀이)

a<-c()
a[1]=222 # 첫째항은 222이라고 하자. 
a[2]=1 # 문제에서 a2=1이라고 하였음

- $S_n$은 $n$이 짝수이냐, 홀수이냐에 따라서 정의가 달라짐

$S_3=S_1-3$

$S_5=S_3-3$

...

$S_4=S_2+2$

$S_6=S_4+2$

...

S<-c()
S[1]=a[1]
S[2]=a[1]+a[2]
(1:5) %% 3
[1] 1 2 0 1 2
n %% 2
[1] 0
for(n in 3:100){
    ### n이 홀수라면?? (n %% 2)==1
    if(n%%2 ==1){
        S[n]=S[n-2]-3
    }else{ ### n이 짝수라면?? (n%%2) == 0 
        S[n]=S[n-2]+2
    }
}
S
  [1] 222 223 219 225 216 227 213 229 210 231 207 233 204 235 201 237 198 239
 [19] 195 241 192 243 189 245 186 247 183 249 180 251 177 253 174 255 171 257
 [37] 168 259 165 261 162 263 159 265 156 267 153 269 150 271 147 273 144 275
 [55] 141 277 138 279 135 281 132 283 129 285 126 287 123 289 120 291 117 293
 [73] 114 295 111 297 108 299 105 301 102 303  99 305  96 307  93 309  90 311
 [91]  87 313  84 315  81 317  78 319  75 321
S[8]-S[7]
[1] 16

- 2010(나)/수능(홀) 30(고3)의 문제풀이에서 a[1]의 값을 0, 222 이외의 값으로 설정하고 $a_8$을 구하라.