Day 18 문자열, 수학, 조건문, 정렬
Day18 18단계 20231107
1. 문자열안에 문자열
class Solution {
public int solution(String str1, String str2) {
return (str1.contains(str2)) ? 1 : 2;
}
}
2. 제곱수 판별하기
- 내 풀이 : Double Math.sqrt()를 처음 사용해봤다.
- Math 클래스 메소드 참고
class Solution {
public int solution(int n) {
return (Math.sqrt(n) == (int)Math.sqrt(n)) ? 1 : 2;
}
}
3. 세균 증식
- 내 풀이 : n마리가 1시간 후 2배, 2시간 후 n*2*2이므로 4배이기 때문에 t시간 후에는 n*Math.pow(2, t)가 된다.
class Solution {
public int solution(int n, int t) {
return n*(int)Math.pow(2, t);
}
}
- 다른 사람 풀이 : 비트 연산을 이용하여 n의 비트를 왼쪽으로 한 칸 이동 시키면 2를 곱한 것과 같기 때문에 n*Math.pow(2, t)와 동일한 결과를 얻는다.
return n << t;
4. 문자열 정렬하기 (2)
- 내 풀이 : my_string을 toLowerCase()로 소문자 변환한 다음 split("")으로 배열화 한 후, Arrays.sort(str)로 정렬한 요소들을 StringBuilder에 넣어서 다시 String화 해주었다.
import java.util.*;
class Solution {
public String solution(String my_string) {
StringBuilder sb = new StringBuilder();
String[] str = my_string.toLowerCase().split("");
Arrays.sort(str);
for (String s : str) {
sb.append(s);
}
return sb.toString();
}
}
- 다른 사람 풀이 : my_string을 소문자로 만들고 split("") 대신 toCharArray()로 char 배열을 만든 후, Arrays.sort(charArr)로 정렬한 결과를 new String(charArr)로 String화 해주었다.
- String을 만드는 방법 중 char 배열로 만드는 방법을 배울 수 있었다.
char[] charArr = my_string.toLowerCase().toCharArray();
Arrays.sort(charArr);
return new String(charArr);