[R] 정수 리스트에서 첫번째 짝수 전까지 홀수 정수 출력하기

해당 포스트에서는 R에서 임의의 정수 리스트를 생성하고, 첫 번째 짝수 전까지의 홀수들을 출력하는 방법을 설명합니다.

1. INTRO

네이버 지식iN에서 지식을 공유하고 있습니다. 간단한 질문들은 해당 질문에 바로 답변을 드리지만 질문의 내용이 유익하거나 추가 설명이 필요한 경우에는 포스팅을 작성하여 공유드리고 있습니다.

2. 질문

▲ 네이버 지식인 질문

3. 풀이

이번 문제는 조건문, 반복문, 난수 생성 등 다양한 프로그래밍 기술들의 이해를 기반으로 풀어야하는 복합적인 문제입니다. 문제에서 제시한 조건들을 고려한 프로세스는 아래와 같습니다.

  1. 벡터 random_num에 50개의 임의의 정수 생성 : radom_num <- sample(1:100, 50)
  2. for문을 이용하여 random_num내 값들을 순차적으로 탐색하며 홀수 출력
  3. 탐색 도중 짝수가 발견되면 더 이상 출력하지 않고 반복문 중단 : if(random_num[i] %% 2 == 0) break;
  4. 최종 결과는 한 줄에 하나의 정수로 출력

1. 50개 임의의 정수 생성

R에서는 sample() 함수를 이용하여 임의의 정수를 생성할 수 있습니다. 참고로 아래 코드를 따라하시는 분들을 위해 set.seed(210410)를 이용하여 난수 생성을 고정하였으니 실제 사용하실 때에는 set.seed() 함수를 제외하고 사용하시면 합니다.

set.seed(210410)

random_num <- sample(1:100, 50)
random_num
## 29 85 18 80 53  6 66 58 56 86 15  3 42  8 46  7 62 91 57 90 39 30 76 51 36 87 75 47 67 34 97 32  1 52 77 37 48 21  4 78 35 25 94 28 55 84 95 38 69 44

2~4. 순차 탐색 / 홀수 출력 / 짝수 발견시 중단

아래 반복문은 random_num 변수의 전체 길이(length())만큼 순차 탐색되며, i번째 값의 짝수여부 판단에 따라 짝수이면 반복문을 중단, 짝수가 아니라면 출력하게 됩니다. 아래 결과를 보시면 첫 번째 짝수값(18) 전까지의 홀수들(29,85)이 정상 출력된 것을 확인하실 수 있습니다.

for (i in 1:length(random_num)){

  if(random_num[i] %% 2 == 0){

    break

  } else {

    print(random_num[i])
  }
}
## [1] 29
## [1] 85

4. 마무리

이번 포스트에서는 R에서 난수를 생성하고 첫 번째 짝수가 나타나기 전까지의 홀수들을 출력하는 방법을 설명하였습니다. R 프로그래밍의 기초들이 골고루 적용된 좋은 문제라고 생각되며, 해당 문제를 조금씩 수정 (e.g. 두 번째 짝수 전까지 홀수 출력, 첫번째 짝수 전까지의 홀수의 개수 구하기 등) 해가며 연습하시면 프로그래밍 학습에 큰 도움이 될거라 생각합니다.


banner-request-analysis