코딩테스트 대비 프로그래머스 UI로 문제풀이 시도해보았습니다. 백준 UI랑 조금 달라서 쉬운 문제부터 풀어보았습니다.
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12939?language=java
[나의 풀이]
class Solution {
static int getMax(String [] S){
int Max = Integer.parseInt(S[0]);
for(int i=0; i<S.length;i++){
int tmp = Integer.parseInt(S[i]);
if (Max < Integer.parseInt(S[i])){
Max = tmp;
}
}
return Max;
}
static int getMin(String [] S){
int Min = Integer.parseInt(S[0]);
for(int i=0; i<S.length;i++){
int tmp = Integer.parseInt(S[i]);
if (Min > Integer.parseInt(S[i])){
Min = tmp;
}
}
return Min;
}
public String solution(String s) {
int Max = 0;
int Min = 0;
String [] S = s.split(" ");
Max = getMax(S);
Min = getMin(S);
String answer = "";
answer = Integer.toString(Min) + " " + Integer.toString(Max);
return answer;
}
}
문제 자체는 어렵지 않았습니다. 하지만 IDE에서 자동완성으로 함수를 입력하지 못한다는 점, 또 java로 풀다보니 Python에 비해 코드 작성 시간이 오래 걸리는 경향이 있어 Python으로 준비하는 것이 나을 지 고민입니다...
[다른 사람의 풀이]
public class GetMinMaxString {
public String getMinMaxString(String str) {
String[] tmp = str.split(" ");
int min, max, n;
min = max = Integer.parseInt(tmp[0]);
for (int i = 1; i < tmp.length; i++) {
n = Integer.parseInt(tmp[i]);
if(min > n) min = n;
if(max < n) max = n;
}
return min + " " + max;
}
public static void main(String[] args) {
String str = "1 2 3 4";
GetMinMaxString minMax = new GetMinMaxString();
//아래는 테스트로 출력해 보기 위한 코드입니다.
System.out.println("최대값과 최소값은?" + minMax.getMinMaxString(str));
}
}
저의 풀이 이외에 위와 같이 for문은 한 번 돌리며 최소, 최대값을 한번에 구하는 간단히 풀이를 볼 수 있었습니다.
감사합니다.