본문 바로가기
Algorithm/Programmers

[Programmers] Lv.0 / l로 만들기 / Java

by unknownomad 2024. 3. 13.

문제

 

풀이

import java.lang.StringBuilder;

class Solution {
    public String solution(String myString) {
        StringBuilder result = new StringBuilder();
        
        for(int i = 0; i < myString.length(); i++) {
            char currentChar = myString.charAt(i);
            if(currentChar < 'l') {
                result.append('l');
            } else {
                result.append(currentChar);
            }
        }
        return result.toString();
    }
}
class Solution {
    public String solution(String myString) {
        // ^: 부정(negation)을 의미함
        // [l-z]: "l"에서 "z" 사이의 문자 범위
        return myString.replaceAll("[^l-z]", "l"); // "l"부터 "z"까지의 범위를 제외한 모든 문자를 "l"로 대체
    }
}
import java.util.stream.Collectors;

class Solution {
    public String solution(String myString) {
        return myString.chars() // 입력 문자열을 IntStream으로 변환(문자열의 각 문자에 대해 정수값 생성)
                .mapToObj(i -> Character.toString(Integer.max(i, 'l'))) // IntStream의 각 요소를 문자로 매핑,  각 문자는 'l'과 비교되어 가장 큰 값을 선택하고 해당 값을 문자로 변환됨
                .collect(Collectors.joining()); // 스트림의 모든 요소를 하나의 문자열로 연결
    }
}

 

출처

https://school.programmers.co.kr/learn/courses/30/lessons/181834

댓글