문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다.
제한 조건
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
sreturn
1 2 3 4 | 1 4 |
-1 -2 -3 -4 | -4 -1 |
나의 풀이
문자열을 split 함수를 이용해 공백단위로 쪼개 String 형 배열에 저장하고
String 형의 배열을 Int 형 배열에 옮겨담아 정렬하여
맨앞의 수(제일작은수)를 앞에 마지막수(제일큰수)를뒤에 놓고 출력
import java.util.Arrays;
class Solution {
public String solution(String s) {
String tmp[] = s.split(" ");
int num[] = new int[tmp.length];
for(int i = 0 ;i < tmp.length;i++) {
num[i] = Integer.parseInt(tmp[i]);
}
Arrays.sort(num);
String min = Integer.toString(num[0]);
String max = Integer.toString(num[num.length-1]);
String answer = min+" "+max;
return answer;
}
}
2번째 풀이
다른 사람이 푼 방식을 참고로하여 다른방식으로 풀어보았다.
문자열을 split 함수를 이용해 공백단위로 쪼개 String 형 배열에 저장하는것 까지는 같지만
문자열을 정수형으로 바꾸는 for문을 돌면서 하나하나 max,min과 비교하며
가장큰수와 가장 작은수를 찾아낸다.
class Solution {
public String solution(String s) {
String answer = "";
String num[] = s.split(" ");
int max;
int min;
max= min = Integer.parseInt(num[0]);
for(int i = 1 ;i < num.length;i++) {
int n = Integer.parseInt(num[i]);
if(n > max) {
max = n;
}
if(n >min) {
min = n;
}
}
'알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스 큰 수 만들기(그리디) (0) | 2020.05.22 |
---|---|
프로그래머스 전화번호 목록(해시) (0) | 2020.05.21 |
프로그래머스 피보나치 수 (0) | 2020.05.19 |
DFS 와 BFS (0) | 2020.05.18 |
프로그래머스 타겟 넘버 깊이/너비 우선 탐색(DFS/BFS) (0) | 2020.05.18 |
댓글