Level 2
### 2022.10.18. 화
1) 최댓값과 최솟값
- 시간 : 오후 3시 10분 ~ 3시 35분 사이
* 효율성 ↑↑↑
① 데이터 많아졌을 때 고민,
- 숫자 배열 생성하지 말고, int minVal, int maxVal 2개 변수 만들어서 데이터 비교문 안에서 값 추출!
int[] numArr = new int[strings.length];
// sol.
import java.util.Arrays;
import java.lang.*;
class Solution {
public String solution(String s) {
// 1. 문자열 배열에 담기
String[] strings = s.split(" ");
int[] numArr = new int[strings.length];
for (int i = 0; i < strings.length; i++) {
numArr[i] = Integer.parseInt(strings[i]);
}
// 2. 데이터 정렬
Arrays.sort(numArr);
// 3. 첫번째 값과 마지막값 리턴
return numArr[0] +" "+ numArr[s.split(" ").length-1];
}
}
2) JadenCase 문자열 만들기
- 시간 : 오후 4시 이후. 오래 걸림..,
* 효율성 ↑↑↑
① 일단 다 소문자 처리
② 문자열에 " " 위치 찾아서 해당위치 +1 대문자 처리 ( + substring 함수도 같이 이용!)
③ 문자열 배열에 " " 기준으로 데이터 담아서 해당 문자 첫번째 글자만 대문자 처리
// sol. 1
import java.io.*;
import java.util.*;
import java.nio.charset.StandardCharsets;
class Solution {
public String solution(String s) {
String answer = "";
// 1. 문자열 다 소문자 처리
s = s.toLowerCase();
// 2. 문자열 문자 배열에 담기
String jArr[] = s.split("");
byte[] bytes = s.getBytes(StandardCharsets.US_ASCII);
boolean test = false;
// 3. 빈 공백 다음 문자 대문자 처리
for(int i=0;i<jArr.length;i++){
if(test || i == 0 && (bytes[i]>= 97 && bytes[i]<= 122) ){
jArr[i]=jArr[i].toUpperCase();
test = false;
}
if(bytes[i] == 32){
test = true;
}
}
answer = Arrays.toString(jArr).replace("[", "").replace("]", "").replace(", ", "");
return answer;
}
}
// sol. 2
class Solution {
public String solution(String s) {
String answer = "";
String[] sp = s.toLowerCase().split("");
boolean flag = true;
for(String ss : sp) {
answer += flag ? ss.toUpperCase() : ss;
flag = ss.equals(" ") ? true : false;
}
return answer;
}
}
'이직준비 > 목표1_코테1(2210)' 카테고리의 다른 글
Level 3-2 ( 1)이중우선순위큐 2)야근 지수 ) (0) | 2022.11.09 |
---|---|
Level 3-1 ( 1)불량 사용자 ) (0) | 2022.11.09 |
Level 1 (0) | 2022.10.18 |
Level 0 (0) | 2022.10.18 |
목차 (0) | 2022.10.18 |