빙응의 공부 블로그
[Programmers]LV.1 푸드 파이터 대회 본문


📝풀이
기본적인 문자열 처리 문제
설명할게 없는데 제일 관건은 문자열 처리와 얼마나 쉽게 문자를 뒤집어서 합치는 가? 이다.
첫 구현 방법, 별 생각 안하고 기능을 구현했다.
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 |