Menu
Coddy logo textTech

무엇을 살까

Coddy R 여정의 기초 섹션에 포함된 레슨 — 78개 중 78번째.

challenge icon

챌린지

쉬움

두 개의 인자 budget(숫자 값)과 prices(항목 가격이 포함된 명명된 벡터)를 받는 what_to_buy라는 함수를 만드세요. 이 함수는 가격이 예산보다 작거나 같은 모든 항목의 이름을 포함하는 문자형 벡터를 반환해야 합니다.

구매 가능한 항목이 없는 경우, character(0)을 사용하여 빈 문자형 벡터를 반환하세요.

다음과 같은 입력을 받게 됩니다:

  1. 예산 금액 (숫자)
  2. 쉼표로 구분된 항목 이름 목록 (예: apple,banana,steak,bread)
  3. 쉼표로 구분된 해당 가격 목록 (예: 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)

기초의 모든 레슨