반응형
🔐 문제 설명
https://school.programmers.co.kr/learn/courses/30/lessons/134240
🔐 문제 분석
- 음식은 대칭으로 구성되므로, 음식(food)이 주어졌을 때 한쪽만 먼저 구성한다.
- 한쪽 구성이 완료되었으면 물(0)을 추가한 후, 문자열을 뒤집어서 반대편 한쪽 구성도 완료시킨다.
🔐 문제 풀이
class Solution {
public String solution(int[] food) {
StringBuilder answer = new StringBuilder();
// 음식이 대칭으로 준비되었을 때, 한쪽 배치 구성하기
for (int i = 1; i < food.length; i++) {
for (int j = 0; j < food[i] / 2; j++) {
answer.append(i);
}
}
// return answer + "0" + answer.reverse(); 오답코드
return answer.toString() + "0" + answer.reverse().toString();
/*
* 주의
answer.reverse();와 answer.reverse().toString(); 사용 방법에 따라 결과값이 달라진다.
그 이유는 toString()을 호출하면 새로운 문자열을 반환하지만,
reverse()까지만 사용할 경우, 기존 문자열(먼저 구성한 한쪽 문자열)이 영향을 받아 같이 역순으로 구성된다.
따라서 answer.reverse().toString();를 사용하지 않고, answer.reverse();를 사용한다면 의도한 결과가 나오지 않을 수 있다.
*/
}
}
반응형
'Algorithm' 카테고리의 다른 글
[프로그래머스] Lv1. 덧칠하기 (0) | 2023.06.23 |
---|---|
[프로그래머스] Lv1. 카드 뭉치 (0) | 2023.06.12 |
[프로그래머스] Lv1. 모의고사 (0) | 2023.06.12 |
[프로그래머스] Lv1. 과일 장수 (0) | 2023.06.12 |
[프로그래머스] Lv1. 콜라 문제 (0) | 2023.06.11 |