코딩테스트/프로그래머스

[프로그래머스]푸드 파이트 대회 - Java

GAEBAL 2022. 11. 20. 00:51
728x90

문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

풀이

Level 1 문제

 

문자열 관련 함수만 알고 있으면 쉽게 풀 수 있을 거임 !

 

StringBuilder로 접근해서 시간을 최대한 줄이려고 했음 !

 

자세한건 주석으로 !

 

 

코드

// 코딩테스트 연습 - 연습문제 - 푸드 파이트 대회
// https://school.programmers.co.kr/learn/courses/30/lessons/134240

package PROGRAMMERS.level1;

public class Num134240_푸드파이트대회 {
    private static class Solution {
        public String solution(int[] food) {
            for (int i = 1; i < food.length; i++) {
                food[i] = food[i] / 2; // ((대회에 쓰일 만큼)/2)으로 최신화
            }

            StringBuilder sb = new StringBuilder();

            for (int i = 1; i < food.length; i++) {
                for (int j = 0; j < food[i]; j++) {
                    sb.append(i); // 연달아 sb에 붙여주기
                }
            }

            StringBuilder answer = new StringBuilder();
            answer.append(sb); // 음식
            answer.append(0); // 물
            answer.append(sb.reverse()); // 음식 거꾸로

            return answer.toString();
        }

        public static void main(String[] args) {
            Solution sol = new Solution();

            System.out.println(sol.solution(new int[]{1, 3, 4, 6}));
            System.out.println(sol.solution(new int[]{1, 7, 1, 2}));
        }
    }
}
728x90