【At Corder】 【초보자】 ABC087B - Coins를 Ruby로 풀어 보았습니다.
소개
AtCoder 에 등록하면 다음에 하는 것 ~ 이것만 풀면 충분히 싸울 수 있다! 과거문정선 10문 ~ - Qiita
이 기사를 참고로 초보자가 At corder에 도전합니다.
목적은 취업 활동에서의 코딩 테스트 대책입니다.
매일 1문을 목표로 하여 갑자기 옵니다 
모르는 것은 조사하는 정신입니다. 조금이라도 모르겠다, 라고 생각한 것은 조사해 해설과 참고문헌을 올리므로, 같은 내용으로 모르는 사람이 있으면 참고로 해 주세요 
문제 ABC087B - Coins
500엔 구슬을 A장, 100엔 구슬을 B장, 50엔 구슬을 C장 있다. 이들 중에서 몇 장을 선택하고 총 금액을 그냥 X 엔으로 만드는 방법은 몇 가지 있습니까?
같은 종류의 동전은 구별할 수 없다. 두 가지 동전을 선택하는 방법은 특정 종류의 동전에 대해 효과를 선택하는 매수가 다른 경우 구별됩니다.
제약
500엔 구슬을 A장, 100엔 구슬을 B장, 50엔 구슬을 C장 있다. 이들 중에서 몇 장을 선택하고 총 금액을 그냥 X 엔으로 만드는 방법은 몇 가지 있습니까?
같은 종류의 동전은 구별할 수 없다. 두 가지 동전을 선택하는 방법은 특정 종류의 동전에 대해 효과를 선택하는 매수가 다른 경우 구별됩니다.
제약
입력 출력
입력
A
B
C
X
출력
동전을 선택하는 방법의 수를 출력하라.
입력 예
2
2
2
100
출력 예
2
A
B
C
X
2
2
2
100
2
답변
a = gets.to_i
b = gets.to_i
c = gets.to_i
x = gets.to_i
count = 0
#入力
for i in 0..a #500円玉の枚数
x_1 = x - 500*i
break if x_1 < 0 #マイナスだとループを抜ける
for j in 0..b #100円玉の枚数
x_2 = x_1 - 100*j
break if x_2 < 0
for k in 0..c #50円玉の枚数
x_3 = x_2 - 50*k
count += 1 if x_3 == 0
break if x_3 <= 0
end
end
end
puts count
해설
500엔 구슬로부터 평가하도록 했습니다. 그렇게 함으로써 마이너스가 되는 처리의 횟수를 줄일 수 있을까 생각했습니다.
변수가 많아져 버린 생각이 듭니다만, 배열을 사용하는 등으로 변수를 줄이는 편이 좋은 코드일까요? (좋은 코드라는 표현이 있는지 신비하지만,
)
감상
이번은 메소드의 사양 이외는 아무것도 참조하지 않고 코드를 쓸 수 있었습니다.
목적은 달성할 수 있었습니다만, 아직도 부사이크한 곳이 많다고 느낍니다. 웃음
더 코드 수를 줄일 수있는 방법이 있는지 모색하고 싶네요. .
Reference
이 문제에 관하여(【At Corder】 【초보자】 ABC087B - Coins를 Ruby로 풀어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nekonoiruheya/items/3627eee603a87eaf85e2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
a = gets.to_i
b = gets.to_i
c = gets.to_i
x = gets.to_i
count = 0
#入力
for i in 0..a #500円玉の枚数
x_1 = x - 500*i
break if x_1 < 0 #マイナスだとループを抜ける
for j in 0..b #100円玉の枚数
x_2 = x_1 - 100*j
break if x_2 < 0
for k in 0..c #50円玉の枚数
x_3 = x_2 - 50*k
count += 1 if x_3 == 0
break if x_3 <= 0
end
end
end
puts count
500엔 구슬로부터 평가하도록 했습니다. 그렇게 함으로써 마이너스가 되는 처리의 횟수를 줄일 수 있을까 생각했습니다.
변수가 많아져 버린 생각이 듭니다만, 배열을 사용하는 등으로 변수를 줄이는 편이 좋은 코드일까요? (좋은 코드라는 표현이 있는지 신비하지만,

감상
이번은 메소드의 사양 이외는 아무것도 참조하지 않고 코드를 쓸 수 있었습니다.
목적은 달성할 수 있었습니다만, 아직도 부사이크한 곳이 많다고 느낍니다. 웃음
더 코드 수를 줄일 수있는 방법이 있는지 모색하고 싶네요. .
Reference
이 문제에 관하여(【At Corder】 【초보자】 ABC087B - Coins를 Ruby로 풀어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/nekonoiruheya/items/3627eee603a87eaf85e2
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【At Corder】 【초보자】 ABC087B - Coins를 Ruby로 풀어 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nekonoiruheya/items/3627eee603a87eaf85e2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)