Junior-Developer
Home
  • Category (316)
    • 문제풀이 (270)
      • 백준oj (201)
      • 프로그래머스 (53)
      • 명품 자바 프로그래밍(개정4판) (11)
      • 구름 (5)
    • 알고리즘 (6)
    • Node.js (2)
    • 체크리스트 (37)
블로그 내 검색
Home

Junior-Developer

1일 1커밋! 1일 1 백준!

  • 문제풀이/프로그래머스

    [프로그래머스] 체육복

    2020. 11. 24.

    by. Hyeon-Uk

    반응형

    programmers.co.kr/learn/courses/30/lessons/42862

     

    코딩테스트 연습 - 체육복

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

    programmers.co.kr


    문제해결)

    vector<int> st를 n개 만든뒤 모두 0으로 초기화시킨다. 여기서 0=자기체육복만 가지고있는사람, -1=도난당한사람, 1=여분의 체육복이 있는사람을 의미한다.

    그런뒤 lost 배열을 돌며 해당 학생의 값을 -1해주고, reserve를 돌며 +1을 해준다. 이러면 여분이 있는데 도난당한 학생은 0 -1 +1 = 0이되서 나눠줄순 없지만, 수업에 참가할 수 있는 상태가 된다.

     

    그런뒤 학생들을 돌면서

    1.맨앞의 학생이 아니면서 해당학생의 뒷번호 학생이 체육복이 없는상태이고, 해당 학생이 여분의 체육복을 가지고있으면 뒷번호학생++, 자신--

    2.맨 뒤의 학생이 아니면서 해당학생의 앞번호 학생이 체육복이 없는상태이고, 해당 학생이 여분의 체육복을 가지고 있으면 앞번호학생++,자신--

     

    마지막으로 모든학생을 탐색하며 0이상인 학생들의 수를 세어주면 된다.

    #include <string>
    #include <vector>
    
    using namespace std;
    
    int solution(int n, vector<int> lost, vector<int> reserve) {
        int answer = 0;
        vector<int> st(n,0);
        for(int i:lost){
            st[i-1]--;
        }
        for(int i:reserve){
            st[i-1]++;
        }
        for(int i=0;i<st.size();i++){
            if(i!=0&&st[i-1]==-1&&st[i]==1){
                st[i-1]++;
                st[i]--;
                continue;
            }
            if(i!=st.size()-1&&st[i+1]==-1&&st[i]==1){
                st[i+1]++;
                st[i]--;
            }
        }
        for(int i:st){
            if(i>=0){
                answer++;
            }
        }
        return answer;
    }
    반응형

    '문제풀이 > 프로그래머스' 카테고리의 다른 글

    [프로그래머스] 가운데 글자 가져오기  (0) 2020.11.24
    [프로그래머스] 2016년  (0) 2020.11.24
    [프로그래머스] K번째수  (0) 2020.11.24
    [프로그래머스] 모의고사  (0) 2020.11.23
    [프로그래머스] 완주하지 못한 선수  (0) 2020.11.23

    댓글

    관련글

    • [프로그래머스] 2016년 2020.11.24
    • [프로그래머스] K번째수 2020.11.24
    • [프로그래머스] 모의고사 2020.11.23
    • [프로그래머스] 완주하지 못한 선수 2020.11.23
    맨 위로
전체 글 보기
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
Hyeon-Uk

티스토리툴바