무엇을 살까
Coddy R 여정의 기초 섹션에 포함된 레슨 — 78개 중 78번째.
챌린지
쉬움두 개의 인자 budget(숫자 값)과 prices(항목 가격이 포함된 명명된 벡터)를 받는 what_to_buy라는 함수를 만드세요. 이 함수는 가격이 예산보다 작거나 같은 모든 항목의 이름을 포함하는 문자형 벡터를 반환해야 합니다.
구매 가능한 항목이 없는 경우, character(0)을 사용하여 빈 문자형 벡터를 반환하세요.
다음과 같은 입력을 받게 됩니다:
- 예산 금액 (숫자)
- 쉼표로 구분된 항목 이름 목록 (예:
apple,banana,steak,bread) - 쉼표로 구분된 해당 가격 목록 (예:
2,1,15,3)
입력값을 파싱하여 명명된 가격 벡터를 생성하고, 함수를 호출한 후 결과를 출력하세요. 반환된 문자형 벡터를 표시하려면 print()를 사용하세요.
예를 들어, 입력이 다음과 같다면:
5
apple,banana,steak,bread
2,1,15,3출력은 다음과 같아야 합니다:
[1] "apple" "banana" "bread"만약 입력이 다음과 같다면:
10
laptop,phone,tablet
999,599,399출력은 다음과 같아야 합니다:
character(0)힌트:
- 쉼표로 구분된 문자열을 벡터로 분할하려면
strsplit(input, ",")[[1]]를 사용하세요. - 가격 문자열을 숫자로 변환하려면
as.numeric()을 사용하세요. - 명명된 벡터를 생성하려면
names(prices) <- item_names를 사용하세요. - 구매 가능한 항목 이름을 추출하려면
names()와 함께 논리 인덱싱을 사용하세요.
직접 해보기
# 입력 읽기
con <- file("stdin", "r")
budget <- as.numeric(suppressWarnings(readLines(con, n = 1)))
item_names_input <- suppressWarnings(readLines(con, n = 1))
prices_input <- suppressWarnings(readLines(con, n = 1))
close(con)
# 입력값 파싱
item_names <- strsplit(item_names_input, ",")[[1]]
price_values <- as.numeric(strsplit(prices_input, ",")[[1]])
# 가격에 대한 이름이 지정된 벡터 생성
prices <- price_values
names(prices) <- item_names
# TODO: 아래에 what_to_buy 함수를 작성하세요
# 이 함수는 budget과 prices를 인자로 받아야 하며
# 구매 가능한 아이템 이름들을 문자열 벡터로 반환해야 합니다
# 함수를 호출하고 결과 출력
result <- what_to_buy(budget, prices)
print(result)