2021-06-16 01:14:06 +02:00
|
|
|
# Challenge name: Maximum 69 number
|
|
|
|
#
|
2021-09-03 22:24:58 +02:00
|
|
|
# Given a positive integer num consisting only of digits 6 and 9.
|
2021-06-16 01:14:06 +02:00
|
|
|
# Return the maximum number you can get by changing at most one digit (6 becomes 9, and 9 becomes 6).
|
|
|
|
#
|
|
|
|
# Example 1:
|
|
|
|
# Input: num = 9669
|
|
|
|
# Output: 9969
|
|
|
|
# Explanation:
|
|
|
|
# Changing the first digit results in 6669.
|
|
|
|
# Changing the second digit results in 9969.
|
|
|
|
# Changing the third digit results in 9699.
|
|
|
|
# Changing the fourth digit results in 9666.
|
|
|
|
# The maximum number is 9969.
|
|
|
|
#
|
|
|
|
# Example 2:
|
|
|
|
# Input: num = 9996
|
|
|
|
# Output: 9999
|
2021-06-16 01:24:34 +02:00
|
|
|
# Explanation: Changing the last digit 6 to 9 results in the maximum number.
|
|
|
|
|
|
|
|
#
|
|
|
|
# Approach 1: Logical Approach
|
|
|
|
# Explanation: Changing the first available 6 to a 9 will give the max number
|
|
|
|
#
|
|
|
|
def max_number(num)
|
|
|
|
arr = num.to_s.split('')
|
|
|
|
|
|
|
|
arr.each_with_index do |num, i|
|
|
|
|
if num == '6'
|
|
|
|
arr[i] = '9'
|
|
|
|
return arr.join.to_i
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
puts max_number(9669)
|
|
|
|
# => 9969
|
|
|
|
|
|
|
|
puts max_number(9996)
|
2021-09-03 22:24:58 +02:00
|
|
|
# => 9999
|