본문 바로가기

프로그래밍언어/Java

프로그래머스 LV.0

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