ygreenb
yellowgreenblue
ygreenb
전체 방문자
오늘
어제
  • TIL (130)
    • Algorithm & Data Structure (70)
      • 이론 (4)
      • 프로그래머스 (54)
      • 백준 (12)
    • JAVA (4)
    • Android Studio (9)
    • Database (1)
    • WEB (25)
      • HTML+CSS (7)
      • Javascript (5)
      • React (11)
      • Django (1)
      • Node.js (1)
    • Computer Vision (13)
    • Git (8)

블로그 메뉴

  • HOME
  • TAG
  • GITHUB

공지사항

인기 글

태그

  • Comparator
  • Arrays.sort()
  • kotiln
  • entrySet
  • sort
  • DP
  • git
  • Queue
  • compareTo()
  • 프로그래머스
  • dfs
  • 안드로이드
  • stack
  • 해시
  • 백준
  • BFS
  • Android
  • 깃
  • 코틀린
  • HashMap
  • 스택/큐
  • 프로그래머스 Lv.2
  • reactjs
  • git bash
  • greedy
  • React
  • PriorityQueue
  • java
  • getOrDefault
  • 깃허브

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ygreenb

yellowgreenblue

Algorithm & Data Structure/프로그래머스

[Java] 프로그래머스 : 체육복

2022. 2. 14. 09:51

https://programmers.co.kr/learn/courses/30/lessons/42862?language=java 

 

코딩테스트 연습 - 체육복

점심시간에 도둑이 들어, 일부 학생이 체육복을 도난당했습니다. 다행히 여벌 체육복이 있는 학생이 이들에게 체육복을 빌려주려 합니다. 학생들의 번호는 체격 순으로 매겨져 있어, 바로 앞번

programmers.co.kr

 

풀이

체육복을 잃어버린 학생(lost)은 -1, 체육복의 여벌을 갖고있는 학생(reserve)는 +1을 해준 배열 people을 선언한다. 배열크기를 n+2로 선언한것은 후에 조건식에서 i가 0보다 크고, 전체학생보다 작은지등의 비교문을 적지 않기 위해서이다!

체육복을 갖고있지 않은 학생 (people이 -1) 일 때, 자기보다 앞자리, 뒷자리 학생이 여벌 체육복을 가지고 있다면(people이 1) 체육복을 빌린다. 둘 다 여벌체육복이 없다면 체육복을 빌리지 못해 수업을 듣지 못하니 answer을 -1해준다.

class Solution {
    public int solution(int n, int[] lost, int[] reserve) {
        int[] people = new int[n+2];
        int answer = n;
        
        for(int l : lost)
            people[l]--; // lost 학생 -1
        for(int r : reserve)
            people[r]++; // reserve 학생 +1
        
        for(int p : people)
            System.out.println(p);
        
        for(int i=1;i<people.length-1;i++){
            if(people[i]==-1){
                if(people[i-1] == 1){
                    people[i]++;
                    people[i-1]--;
                }else if(people[i+1] ==1){
                    people[i]++;
                    people[i+1]--;
                }else
                    answer--;
            }
        }

        return answer;
    }
}
저작자표시 (새창열림)

'Algorithm & Data Structure > 프로그래머스' 카테고리의 다른 글

[Java] 프로그래머스 : 키패드 누르기  (0) 2022.02.14
[Java] 프로그래머스 : 크레인 인형뽑기 게임  (0) 2022.02.14
[Java] 프로그래머스 : 모의고사  (0) 2022.02.11
[Java] 프로그래머스 : k번째 수  (0) 2022.02.11
[Java] 프로그래머스 : 시저 암호  (0) 2022.02.08
    'Algorithm & Data Structure/프로그래머스' 카테고리의 다른 글
    • [Java] 프로그래머스 : 키패드 누르기
    • [Java] 프로그래머스 : 크레인 인형뽑기 게임
    • [Java] 프로그래머스 : 모의고사
    • [Java] 프로그래머스 : k번째 수
    ygreenb
    ygreenb
    개발공부기록장

    티스토리툴바