알고리즘/프로그래머스
프로그래머스 Lv.2) 최댓값과 최솟값
Zin0_0
2020. 5. 21. 16:43
반응형
최댓값과 최솟값
코딩테스트 연습 - 최댓값과 최솟값
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를��
programmers.co.kr
풀이
주어진 문자열에서 숫자의 최대값과 최소값을 찾는 문제다.
문자열을 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();
}
}
반응형