본문 바로가기
Developer/Ruby

Ruby min, max, minmax 사용 방법 (e.g. 배열 최솟값, 최댓값 구하기 / 배열 문자열 사전순 처음, 마지막 구하기 / 배열 문자열 길이 쇠솟값, 최댓값 구하기 / 다차원 배열, 해시)

by 김씩씩 2022. 9. 13.

Ruby min, max, minmax 사용 방법 (e.g. 배열 최솟값, 최댓값 구하기 / 배열 문자열 사전순 처음, 마지막 구하기 / 배열 문자열 길이 쇠솟값, 최댓값 구하기 / 다차원 배열, 해시)

 

Ruby배열에서 최댓값과 최솟값을 구할 때 사용하는 max, min, minmax 사용 방법을 알려드리도록 하겠습니다.

숫자 배열에서 최솟값과 최댓값 구하는 방법, 문자열 배열에서 사전순으로 처음과 마지과 구하는 방법, 문자열 배열에서 문자열 길이 최솟값과 최댓값 구하는 방법, 다차원 배열에서 비교를 원하는 부분을 선택하여 최솟값과 최댓값을 구하는 방법을 예시로 들어 사용 방법을 자세히 설명해 보도록 하겠습니다.

 

 

숫자 배열에서 최솟값과 최댓값 구하는 방법

arr = [-50, 1, -24, 0, 48, 100]

p arr         # [-50, 1, -24, 0, 48, 100]

p arr.min     # -50
p arr.min(2)  # [-50, -24]

p arr.max     # 100
p arr.max(2)  # [100, 48]

p arr.minmax  # [-50, 100]

숫자들로만 이루어진 배열에서,

min 메소드를 사용하여 최솟값을 구할 수 있습니다. 인수로 값을 지정하여 사용하면 입력한 개수 만큼 값을 구할 수 있습니다.

max 메소드를 사용하여 최댓값을 구할 수 있습니다. 인수로 값을 지정하여 사용하면 입력한 개수 만큼 값을 구할 수 있습니다.

minmax 메소드를 사용하여 최솟값과 최댓값을 한번에 구할 수 있습니다. minmax는 min과 max 처럼 개수를 지정할 수는 없습니다.

 

 

문자열 배열에서 사전순으로 처음과 마지막 구하는 방법

arr = ["안녕하세요", "개발자 김정식", "입니다.", "잘 부탁 드립니다."]

p arr         # ["안녕하세요", "개발자 김정식", "입니다.", "잘 부탁 드립니다."]

p arr.min     # "개발자 김정식"
p arr.min(2)  # ["개발자 김정식", "안녕하세요"]

p arr.max     # "잘 부탁 드립니다."
p arr.max(2)  # ["잘 부탁 드립니다.", "입니다."]

p arr.minmax  # ["개발자 김정식", "잘 부탁 드립니다."]

문자열로만 이루어진 배열에서,

min 메소드를 사용하여 사전순 가장 먼저 오는 문자열을 구할 수 있습니다. 인수로 값을 지정하여 사용하면 입력한 개수 만큼 값을 구할 수 있습니다.

max 메소드를 사용하여 사전순 가장 마지막에 오는 문자열을 구할 수 있습니다. 인수로 값을 지정하여 사용하면 입력한 개수 만큼 값을 구할 수 있습니다.

minmax 메소드를 사용하여 사전순 가장 먼저 오는 문자열과 마지막에 오는 문자열을 구할 수 있습니다. minmax는 min과 max 처럼 개수를 지정할 수는 없습니다.

 

 

문자열 배열에서 문자열 길이 최솟값과 최댓값 구하는 방법

arr = ["안녕하세요", "개발자 김정식", "입니다.", "잘 부탁 드립니다."]

p arr   # ["안녕하세요", "개발자 김정식", "입니다.", "잘 부탁 드립니다."]

p arr.min { |a, b| a.length <=> b.length }    # "입니다."
p arr.min(2) { |a, b| a.length <=> b.length } # ["입니다.", "안녕하세요"]

p arr.max { |a, b| a.length <=> b.length }    # "잘 부탁 드립니다."
p arr.max(2) { |a, b| a.length <=> b.length } # ["잘 부탁 드립니다.", "개발자 김정식"]

p arr.minmax { |a, b| a.length <=> b.length } # ["입니다.", "잘 부탁 드립니다."]

min, max, minmaxBlock 을 사용하여 무엇을 비교할 것인지 설정하여 최솟값과 최댓값을 구할 수 있습니다.

위와 같이 문자열의 길이로 비교하도록 설정하여 문자열 배열에서 사전순을 비교하는 것이 아닌 문자열의 길이를 비교하는 것으로 최솟값과 최댓값을 구할 수 있습니다.

 

 

※ 추가 : Block을 활용한 또 다른 예시

arr = [[0, "안녕하세요"], [1, "개발자 김정식"], [2, "입니다."], [3, "잘 부탁 드립니다."]]

p arr   # [[0, "안녕하세요"], [1, "개발자 김정식"], [2, "입니다."], [3, "잘 부탁 드립니다."]]

p arr.min { |a, b| a[1].length <=> b[1].length }    # [2, "입니다."]
p arr.min(2) { |a, b| a[1].length <=> b[1].length } # [[2, "입니다."], [0, "안녕하세요"]]

p arr.max { |a, b| a[1].length <=> b[1].length }    # [3, "잘 부탁 드립니다."]
p arr.max(2) { |a, b| a[1].length <=> b[1].length } # [[3, "잘 부탁 드립니다."], [1, "개발자 김정식"]]

p arr.minmax { |a, b| a[1].length <=> b[1].length } # [[2, "입니다."], [3, "잘 부탁 드립니다."]]

위 예시에서 보실 수 있듯이 Block을 잘 사용하면 원하는 부분을 선택하여 비교하거나, 다차원 배열이나 Hash 배열에서도 원하는 값을 비교하여 최솟값과 최댓값을 얻어낼 수 있는 등 다양하게 활용하실 수 있습니다.

 

 

이상으로 Ruby의 배열에서 최댓값과 최솟값을 구할 때 사용하는 max, min, minmax 사용 방법에 대한 설명을 마치도록 하겠습니다.

 

 

도움이 되셨다면 공감, 댓글 부탁드립니다!

궁금하신 점이나 요청사항은 언제든지 말씀해주세요!

피드백도 언제나 환영입니다!

 

감사합니다.


댓글