https://school.programmers.co.kr/learn/courses/30/lessons/12939
입력 받은 String 문자열을 숫자 단위로 하나씩 자른다.
자른 String 배열을 int 타입으로 변환한다.
int 타입의 숫자들의 값을 비교한다.
3-1. max / min 변수에 입력받은 숫자들 중 첫번째 값을 넣는다.
3-2. 루프를 돌리며 max / min 변수와 n번째 숫자를 비교하여 더 큰 값이나 작은 값으로 교체.
이때 max, min 비교는 함수를 만들어서 한다.
Integer.parseInt()
❓ NumberFormatException = 숫자 형식 오류
숫자형의 Input이 필요한 곳에 숫자형이 아닌 타입이 들어올 때 발생하는 런타임 예외
‼️ 해결 방법
try - catch 문을 작성한다.
String str = "25";
try{
Integer number = Integer.valueOf(str);
System.out.println(number); // output = 25
}
catch (NumberFormatException ex){
ex.printStackTrace();
}
split()
String str = "Hello World Everyone !!";
String[] ArraysStr = str.split(" "); // [Hello, World, Everyone, !!]
String[] ArraysStr = str.split(" ", 2); // [Hello, World Everyone !!]
class Solution {
public String solution(String s) {
String [] cutter = s.split(" ");
String answer = min(cutter) + " " + max(cutter); // gkatn ghcnf
return answer;
}
public int max(String [] inputNum){
int maxNum = Integer.parseInt(inputNum[0]);
try{
for(String a : inputNum){
int compareNum = Integer.parseInt(a);
if(maxNum < compareNum){
maxNum = compareNum;
}
}
}catch (NumberFormatException ex){
ex.printStackTrace();
}
return maxNum;
}
public int min(String [] inputNum){
int minNum = Integer.parseInt(inputNum[0]);
try{
for(String a : inputNum){
int compareNum = Integer.parseInt(a);
if(minNum > compareNum){
minNum = compareNum;
}
}
}catch (NumberFormatException ex){
ex.printStackTrace();
}
return minNum;
}
}
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));
}
}
내 코드와 비교
문자열 변환과 동시에 비교하고, if 문을 내부에 두 번 적어서 불필요한 중복을 막았다.
대신 내가 작성한 코드는 함수로 작성해서 재사용성이 올라갔다.
지난번 발표 때 들은 스트링 버퍼 사용 / appned의 적절한 사용으로 시간을 0초대까지 내릴 수 있다는 것을 배웠다.