-
프로그래머스 Lv.2) 최댓값과 최솟값알고리즘/프로그래머스 2020. 5. 21. 16:43반응형
최댓값과 최솟값
풀이
주어진 문자열에서 숫자의 최대값과 최소값을 찾는 문제다.
문자열을 split하는 방법에 대해 알고 있다면 쉬운 문제였다.
이 문제는 두 가지의 방식으로 적었는데, StringTokenizer를 통해 split을 하는 방법과 split 메소드를 통해 하는 방법 두 가지가 떠올랐기 때문이다. 또한, StringTokenizer는 IDE에서만 사용해봤기 때문에 제대로 알고있는지 시험해보기 위해 써봤다. StringTokenizer는 토큰을 저장하기 때문에 hasMoreTokens() 라는 이름의 메소드임에 유의하자.
1. 문자열을 split 해준다.
2. 최대 최소값을 비교하며 저장해준다.
3. StringBuffer에 최소값과 공백, 최대값 순서로 append해준 뒤, toString()을 통해 return한다.
String에서 +연산이나 변경하는게 아니라 StringBuffer를 이용하거나 StringBuilder를 이용하는 이유에 대해 궁금하시다면 따로 찾아보시는 것을 추천합니다. String의 생성방법과 연관되어 있는 문제입니다.
코드
import java.util.StringTokenizer; class Solution { public String solution(String s) { StringBuffer answer = new StringBuffer(); int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; /*String[] strArr = s.split(" "); for(String str : strArr) { int num = Integer.parseInt(str); max = Math.max(max, num); min = Math.min(min, num); }*/ StringTokenizer st = new StringTokenizer(s); while(st.hasMoreTokens()) { int num = Integer.parseInt(st.nextToken()); max = Math.max(max, num); min = Math.min(min, num); } answer.append(min).append(" ").append(max); return answer.toString(); } }
반응형'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv.2) 숫자의 표현 (0) 2020.05.21 프로그래머스 Lv.2) 행렬의 곱셈 (0) 2020.05.21 프로그래머스 Lv.2) 피보나치 수 (0) 2020.05.21 프로그래머스 Lv.2) 올바른 괄호 짝지어 제거하기 (0) 2020.05.21 프로그래머스 Lv.2) N개의 최소공배수 (0) 2020.05.21