해당 포스트에서는 R에서 100이하 짝수합을 구하면서 총합이 2000을 넘으면 중단시키는 계산 방법을 설명합니다.
1. INTRO
네이버 지식iN에서 지식을 공유하고 있습니다. 간단한 질문들은 해당 질문에 바로 답변을 드리지만 질문의 내용이 유익하거나 추가 설명이 필요한 경우에는 포스팅을 작성하여 공유드리고 있습니다.
2. 질문
3. 풀이
이번 풀이는 반복문과 조건문을 이용하여 100 이하 짝수합을 구하면서 계산 도중 총합이 2000을 넘으면 계산을 중단하는 프로그램을 작성해 보겠습니다.
문제 해결을 위한 다양한 풀이 방식이 있을 수 있으나 아래에서는 2가지 방식을 설명드리겠습니다.
- 100 이하 모든 수에 대하여 반복문을 수행하며 짝수일 경우 누적합 계산
- 100 이하 짝수를 리스트로 만들어 반복문 수행하며 누적합 계산
1. 100 이하 모든 수 / 짝수만 누적합 / 누적합 2000 초과시 중단
1번 풀이는 100 이하 모든 수를 1부터 순차 증가하며 짝수 여부를 판단하고, 짝수인 경우 누적합 변수(temp
)에 합산하는 반복문을 사용합니다. 또한, 반복을 진행하다가 누적합 변수(temp
)가 2000을 초과하면 반복문을 중단하도록 작성하였습니다.
temp = 0
for (i in 1:100){
if(i %% 2 == 0){
temp = temp + i
}
if(temp > 2000) break
}
print(temp)
## [1] 2070
2. 100 이하 짝수 / 누적합 2000 초과시 중단
2번 풀이에서는 100 이하 모든 수가 아닌 100 이하 짝수에 대하여 순차 증가하며 누적합을 계산합니다. 100 이하 짝수 생성을 위해 seq()
함수를 활용하였으며, 위 계산보다 계산량을 절반으로 줄일 수 있어 리소스 관점에서 보다 효과적입니다.
아래
seq(2, 100, 2)
는 "초기값 2부터 100까지 2씩 증가시킨다"의 의미입니다.
temp = 0
for (i in seq(2, 100, 2)){
temp = temp + i
if(temp > 2000) break
}
print(temp)
## [1] 2070
3. 마무리
이번 포스트에서는 R에서 100 이하 짝수 합을 계산하면서 일정 총합에 도달하면 계산을 중단하는 방법을 설명드렸습니다. 단순 문제 해결을 위해서는 1부터 100까지 모든 수를 검토하여 짝수만 합산할 수 있으나, 연습이 아닌 실전에서는 데이터 양도 방대해지고 효율적인 프로그래밍이 요구되기에 2번 풀이처럼 반복문에 적용되는 리스트 길이를 사전에 줄여주는 것이 좋은 프로그래밍 접근법이라고 할 수 있습니다.
초급을 넘어 중급으로 올라가시게 되면 효율적인 프로그래밍이 필요하게 되고, 이를 위해 R 뿐만 아니라 타 언어 코딩 스타일, 초급/중급/고급 알고리즘 등 다양한 공부가 필요하게 됩니다. 고급 스킬을 알려드릴 능력은 안되지만 초/중급의 스킬을 지속적인 포스팅을 통해 공유드리도록 하겠습니다.