코딩초보 김씨

[R] 조건문, 반복문, 함수 - 복습 문제 & 정답 본문

R

[R] 조건문, 반복문, 함수 - 복습 문제 & 정답

초보김씨 2021. 6. 19. 16:54

[문제 1] 다음의 각 문제를 해결하기 위한 R 코드를 작성하시오.

(1) 1~100 사이의 정수 중 3의 배수들의 합과 개수를 구하시오.

(2) 101~200 사이의 숫자 중 3과 4의 공배수를 출력하시오.

(3) 24의 약수를 출력하시오.

(4) 10!을 출력하시오.(단, factorial() 함수를 이용하지 않는다.)

 

[답변 1]

(1) 1~100 사이의 정수 중 3의 배수들의 합과 개수를 구하시오.

sum <- 0
for (i in 1:100){
  if (i%%3==0)
    sum <- sum+i
}
sum

[출력 결과]

(2) 101~200 사이의 숫자 중 3과 4의 공배수를 출력하시오.

for (i in 101:200){
  if (i%%3==0&i%%4==0)
    print(i)
}

[출력 결과]

(3) 24의 약수를 출력하시오.

for (i in 1:24){
  if (24%%i==0)
    print(i)
}

[출력 결과]

 

(4) 10!을 출력하시오.(단, factorial() 함수를 이용하지 않는다.)

times <- 1
for (i in 1:10){
  times = times*i
}
print (times)

[출력 결과]

 


 

[문제 2] 1~100의 정수를 차례로 출력하되 3의 배수에서는 숫자 대신 ‘*’을 출 력하는 R 코드를 작성하시오(출력은 가로방향으로 한다).

 

[답변 2]

cat(i, append='True')만 해도 나오는데, 보기 편하기 위해 ' ' 공백 삽입하였다.

for (i in 1:100){
  if (i%%3!=0){
    cat(i,' ',append='True')
  } else {
    cat('*',' ',append='True')
  }
}

[출력 결과]

 1) 공백 삽입                                                               2) 공백 미삽입 

 


 

[문제 3] 10명의 몸무게를 저장한 벡터가 다음과 같을 때 질문을 해결하기 위 한 R 코드를 작성하시오.

(1) 몸무게가 가장 큰 값은 몇 번째에 있나?

(2) 몸무게가 가장 작은 값은 몇 번째에 있나?

(3) 몸무게가 61에서 69 사이인 값들은 몇 번째에 있나?

(4) 몸무게가 60 이하인 값들만 추출하여 weight.2에 저장하고 내용을 보이시오.

 

 

[답변 3]

weight <- c(69,50,55,71,89,64,59,70,71,80)

(1) 몸무게가 가장 큰 값은 몇 번째에 있나?

which.max(weight)

(2) 몸무게가 가장 작은 값은 몇 번째에 있나?

which.min(weight)

(3) 몸무게가 61에서 69 사이인 값들은 몇 번째에 있나?

which(weight>=61 & weight<=69)

(4) 몸무게가 60 이하인 값들만 추출하여 weight.2에 저장하고 내용을 보이시오.

which(weight<60)
weight.2 <- weight[c(2,3,7)]
weight.2

[출력 결과]

Comments