728x90
🔗 문제 링크
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📌 문제 개요
두 선수가 같은 음식 종류와 개수를 같은 순서로 먹을 수 있도록 음식을 배치하는 문제
중앙에는 물을 의미하는 0이 들어가고, 양쪽은 서로 대칭 구조가 되어야 한다.
📌 접근 방법
각 음식은 두 선수가 똑같이 나누어 먹어야 하므로 사용할 수 있는 개수는 food[i] / 2개다.
왼쪽 문자열을 먼저 만든 뒤, 가운데 0을 넣고 왼쪽 문자열을 뒤집어 오른쪽에 붙이면 된다.
📌 핵심 아이디어
왼쪽 + 0 + 뒤집은 왼쪽
예를 들어 food = [1, 3, 4, 6]이면
1번 음식: 3 / 2 = 1개
2번 음식: 4 / 2 = 2개
3번 음식: 6 / 2 = 3개
왼쪽 = 122333
정답 = 122333 + 0 + 333221
📌 전체 코드
class Solution {
public String solution(int[] food) {
StringBuilder left = new StringBuilder();
for (int i = 1; i < food.length; i++) {
for (int j = 0; j < food[i] / 2; j++) {
left.append(i);
}
}
String right = new StringBuilder(left).reverse().toString();
return left.toString() + "0" + right;
}
}
📄 정리
이 문제는 좌우 대칭 구조를 만드는 문자열 구현 문제
음식 개수를 절반만 사용해 왼쪽 문자열을 만들고, 이를 뒤집어 오른쪽에 붙이는 방식으로 간단하게 해결할 수 있다.
728x90
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
| 프로그래머스 숫자 문자열과 영단어 JAVA 풀이 (문자열, replace) (0) | 2026.06.02 |
|---|---|
| [프로그래머스] K번째수 JAVA 풀이 (알고리즘, 시간복잡도) (0) | 2026.05.28 |
| 프로그래머스 두 개 뽑아서 더하기 (JAVA) (0) | 2026.05.26 |
| 프로그래머스 시저 암호 JAVA (문자열, 구현, 아스키코드) (0) | 2026.05.25 |
| 프로그래머스 가장 가까운 같은 글자 JAVA 풀이 (해시맵, 문자열) (0) | 2026.05.24 |