[프로그래머스|JAVA] 서버 증설 횟수 📈 | 배열 활용 | 쉬운 코드 ⭕️

2025. 8. 25. 18:05·💻코딩/💡Programmers
728x90
반응형

[문제 링크]

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

[문제]

문제가 길어서 링크타고 보시길 바랍니다.

 

 


 

📍 [코드]

class Solution {
    public int solution(int[] players, int m, int k) {
        int answer = 0;
        int[] work = new int[players.length + k]; // 반납 시간 저장
        int worker = 0; // 운영 중 서버
        
        for(int i = 0; i < players.length; i++) {
            worker -= work[i]; // 반납 된 서버 빼기
            
            int required = players[i] / m;
            
            if(required > worker) {
                int server = required - worker;
                answer += server;
                worker += server;
                work[i + k] += server;
            }            
        }
        return answer;
    }
}

 

💡 접근법

  • 서버를 반납할 때를 저장하는 work 배열을 생성하고,
  • players 배열을 순회한다. 
  • 처음에 work 배열은 모두 0이므로 운영중인 서버는 변동이 없고
  • 서버가 필요한지 required변수를 통해 계산한다.
  • 만약 운영 중인 서버 수 < 필요한 서버 수라면 그만큼 서버를 증설하고,
  • 증설한 수를 answer과 worker에 추가한다.
  • 이때, work 배열에 현재 인덱스에서 k 번째 후 인덱스에 증설한 서버 수를 저장하여 나중에 반납할 시 뺄 수 있게한다.

✅ 증설된 서버를 빼는 것을 우선적으로 해주어 간결한 코드가 되었다.

 

 


 

💬 마무리

이 문제는 문제의 흐름을 잘파악하여 조건을 어떤 순서로 어떻게 주는지에 따라 코드 길이나 
풀이 방법이 달라질 것 같다.

 

 

 

 

728x90
반응형

'💻코딩 > 💡Programmers' 카테고리의 다른 글

[프로그래머스|JAVA] 롤케이크 자르기 | Set과 Map 사용 ⭕️ | Set 과 Map 특징 및 시간 복잡도 비교 | 실패한 코드도 같이..📚  (0) 2025.09.08
[프로그래머스|JAVA] 정수 내림차순으로 정렬하기 | StringBuilder 사용 ⭕️ , 간단 코드, Stream 사용 ❌  (2) 2025.09.01
[프로그래머스|JAVA] K번째 수 | 정렬 | List 활용 📚  (1) 2025.08.25
[프로그래머스|JAVA] 시저 암호 | 🌐 아스키코드 값 (유니코드) 활용 | 간단 코드  (1) 2025.08.25
[프로그래머스|JAVA] 가운데 글자 가져오기 | 간결 & 쉬운 코드 📚 | 간편하게 String 형변환 방법 포함 ⭕️  (2) 2025.08.25
'💻코딩/💡Programmers' 카테고리의 다른 글
  • [프로그래머스|JAVA] 롤케이크 자르기 | Set과 Map 사용 ⭕️ | Set 과 Map 특징 및 시간 복잡도 비교 | 실패한 코드도 같이..📚
  • [프로그래머스|JAVA] 정수 내림차순으로 정렬하기 | StringBuilder 사용 ⭕️ , 간단 코드, Stream 사용 ❌
  • [프로그래머스|JAVA] K번째 수 | 정렬 | List 활용 📚
  • [프로그래머스|JAVA] 시저 암호 | 🌐 아스키코드 값 (유니코드) 활용 | 간단 코드
망꼬누나
망꼬누나
공부한 내용을 정리하는 공간입니다.
  • 망꼬누나
    망꼬누나의 개발 공부
    망꼬누나
  • 전체
    오늘
    어제
    • 분류 전체보기 (165)
      • ℹ️ 정보 및 실습 (19)
        • ☑️ Git & GitHub (8)
        • ☑️ 프로젝트 (6)
        • ☑️ 회고 및 후기 (5)
      • 🛠 CS (1)
      • 💻코딩 (88)
        • 💡Baekjoon (17)
        • 💡Programmers (71)
      • ✏️공부 (48)
        • 💡OS (1)
        • 💡Network (6)
        • 💡SpringBoot (9)
        • 💡JAVA (21)
        • 💡SQL (1)
        • 💡DB (2)
        • ☁️ Cloud (4)
        • 💡알고리즘 (4)
      • 📌 자격증 (6)
        • 📝정보처리기사 (3)
        • 📝SQLD (3)
  • 블로그 메뉴

    • 홈
    • github
  • 나의 GitHub Contribution 그래프
    Loading data ...
  • 인기 글

  • 태그

    알고리즘
    자료구조
    GIT
    코딩테스트
    네트워크
    AWS
    데브코스
    자바
    map
    github
    프로그래머스 #JAVA
    Set
    Java
    동시성제어
    트랜잭션
    S3
    백엔드
    Stream
    baekjoon
    프로그래머스
  • 최근 댓글

  • 최근 글

  • 250x250
    반응형
  • hELLO· Designed By정상우.v4.10.5
망꼬누나
[프로그래머스|JAVA] 서버 증설 횟수 📈 | 배열 활용 | 쉬운 코드 ⭕️
상단으로

티스토리툴바