빙응의 공부 블로그

[Programmers]LV.1 푸드 파이터 대회 본문

Argorithm

[Programmers]LV.1 푸드 파이터 대회

빙응이 2023. 12. 12. 21:41

 


📝풀이

기본적인 문자열 처리 문제 

 

설명할게 없는데 제일 관건은 문자열 처리와 얼마나 쉽게 문자를 뒤집어서 합치는 가? 이다.

 

 

첫 구현 방법, 별 생각 안하고 기능을 구현했다. 

 

class Solution {
    public String solution(int[] food) {
        String answer = "";
        for(int i = 1; i < food.length;i++){
            for(int j= 0; j < food[i]/2;j++){
                answer += Integer.toString(i);
            }
        }
        String temp = answer;
        answer += "0";
        for(int i = temp.length()-1; i >= 0; i--){
            answer += Character.toString(temp.charAt(i));
        }
        return answer;
    }
}

 

 

두번째 스트림 사용 방법 

간단은 한데 가독성은 좀 별로?

import java.util.stream.Collector;
import java.util.stream.Collectors;
import java.util.stream.IntStream;

class Solution {
    public String solution(int[] food) {
        String answer = IntStream.range(0, food.length)
        .flatMap(i -> IntStream.range(0, food[i]/2))
        .mapToObj(j -> Integer.toString(j))
        .collect(Collectors.joining());

        String reversedAnswer = new StringBuilder(answer).append("0").reverse().toString();
        
        return answer + reversedAnswer;
    }
}

 

인상깊은 다른 사람의 방법

이렇게 쉽게 풀 수 있는데 좀 더 생각할 껄이라는 후회가 들었다..

class Solution {
    public String solution(int[] food) {
        String answer = "0";

        for (int i = food.length - 1; i > 0; i--) {
            for (int j = 0; j < food[i] / 2; j++) {
                answer = i + answer + i; 
            }
        }

        return answer;
    }
}

 

'Argorithm' 카테고리의 다른 글

[Programmers]Lv.1 옹알이(2)  (0) 2023.12.15
[Programmers]LV.1 햄버거 만들기  (0) 2023.12.13
[Programmers]LV.1 과일 장수  (0) 2023.12.11
[Programmers]LV.1 기사단원의 무기  (0) 2023.12.10
[Programmers]LV.1 명예의 전당  (1) 2023.12.06