2023-02-13
7의 갯수
class Solution {
public int solution(int[] array) {
int answer = 0;
final char ch = '7';
for(int a : array){
String s = Integer.toString(a);
for(int i = 0; i < s.length(); i++){
if(s.charAt(i) == ch){
answer++;
}
}
}
return answer;
}
}
설명
배열에 담긴 각 요소에 7의 갯수를 구한다. [7, 77, 17]의 경우 7의 갯수는 4개이다. 본 풀이는 int형과 String형 변환을 활용해 풀이를 했다. Integer.toString(int i)는 i를 문자열로 변환하며 각 문자열에 문자를 순회하며 확인해 '7'과 같다면 카운트를 한다. -> (다른 풀이) 각 요소에대하여 10으로 나눈 나머지가 7인 경우 갯수를 카운트한다.
2023-02-13
문자열 정렬하기 (2)
import java.util.Arrays;
class Solution {
public String solution(String my_string) {
String answer = "";
my_string = my_string.toLowerCase();
char[] ch = my_string.toCharArray();
Arrays.sort(ch);
answer = new String(ch);
return answer;
}
}
설명
영문으로 구성된 문자열이 주어졌을 때 대문자를 소문자로 변환하고 정렬한다. (sudo) 1. 대문자를 소문자로 변환한다. 2. 정렬한다. (풀이설명) 문자열의 모든 문자를 소문자로 변환하는 메소드로 string.toLowerCase()가 있다. 문자열은 자바에서 변경할 수 없기 때문에 새로운 인스턴스를 생성한다. 해당 문자열을 정렬하기위해 Arrays.sort() 메서드를 활용한다. 따라서 문자열을 char형 배열로 변환하기위해 String.toCharArray()를 사용해 어레이로 변환한 뒤 Arrays.sort()로 정렬을 하고 String 생성자를 활용해 새 문자열을 생성한다. (추가) Java 8 Stream을 활용해 새로운 방법으로 문자열을 정렬할 수 있다.
class Solution { public String solution(String my_string) { return my_string.toLowerCase() .chars() .sorted() .collect(StringBuilder::new, StringBuilder::appendCodePoint, StringBuilder::append) .toString(); } }
혹은 IntStream을 활용해 문자열을 단일 문자열로 분해하고 다시 문자열을 반환할 수 있다.
import java.util.stream.Collectors; import java.util.stream.Stream; class Solution { public String solution(String my_string) { return Stream.of(my_string.toLowerCase().split("")) .sorted() .collect(Collectors.joining()); } }
'프로그래밍언어 > Java' 카테고리의 다른 글
가변객체와 불변객체 (0) | 2023.05.23 |
---|---|
자바 어노테이션 (0) | 2023.05.21 |
[Java] Optional이 모길래??? (0) | 2023.04.13 |
[자바 기초] 자바 클래스 (0) | 2023.03.28 |
자바로 배우는 자료구조 (0) | 2023.02.22 |