Day 3 연산
Day3 3단계 20231020
2. 문자 리스트를 문자열로 변환하기
- StringBuilder를 사용했을 때가 String을 연산했을 때보다 훨씬 빠르다!
- String.join()은 배열 같은 연속된 문자열 요소에 사용할 수 있으며, 속도도 빠르다.
- StringBuilder를 사용했을 때
class Solution {
public String solution(String[] arr) {
String answer = "";
for (int i = 0; i < arr.length; i++) {
answer += arr[i];
}
return answer;
}
}
class Solution {
public String solution(String[] arr) {
StringBuilder sb = new StringBuilder();
for (String st : arr) {
sb.append(st);
}
return sb.toString();
}
}

- String 연산을 했을 때
class Solution {
public String solution(String[] arr) {
String answer = "";
for (int i = 0; i < arr.length; i++) {
answer += arr[i];
}
return answer;
}
}

- 제너릭 String이나 CharSequence 타입, 문자열을 연결할 수 있음
- Collectors를 가져와서 쓸 수 있는 클래스면 이 메소드 사용 가능
4. 더 크게 합치기
- 내 풀이 (딱 봐도 여러 번 옮기고 복잡하게 작성했다)
class Solution {
public int solution(int a, int b) {
StringBuilder plusOne = new StringBuilder();
StringBuilder plusTwo = new StringBuilder();
int result1 = Integer.parseInt(plusOne.append(Integer.toString(a)).append(Integer.toString(b)).toString());
int result2 = Integer.parseInt(plusTwo.append(Integer.toString(b)).append(Integer.toString(a)).toString());
return (result1 >= result2 ? result1 : result2);
}
}
- 매우 간략하게 작성한 다른 사람의 풀이
class Solution {
public int solution(int a, int b) {
return Math.max(Integer.parseInt(a + "" + b), Integer.parseInt(b + "" + a));
}
}
- 자바에선 ""+숫자 를 문자로 인식해서 출력하는 경우가 많다
- 잘 생각해보자. System.out.println("" + int var + " 입니다."); 를 사용했을 때 var는 정수->문자로 타입변환 되어 출력됬었다!
5. 두 수의 연산값 비교하기
class Solution {
public int solution(int a, int b) {
return Math.max(Integer.parseInt(a + "" + b), 2*a*b);
}
}
-
두 경우의 차이가 미묘하게 난다, 의미가 있는지는 잘 모르겠다.
0.8 ~ 1ms 정도의 시간 차이는 크게 차이 나지 않지만, 일단 속도가 빠르면 좋다. -
다른 사람이 작성한 코드

-
내가 작성한 코드
