개발자 항해

코드업] 2328-칭찬스티커(0) 본문

Programming/Java-코드업,프로그래머스

코드업] 2328-칭찬스티커(0)

리치Y 2022. 5. 21. 14:14
  • 문제 설명

    비버고등학교에서는 아래 규칙에 따라 칭찬 스티커를 발급한다.
    - 칭찬 스티커는 평일, 주말에 관계없이 매일 발급한다.
    - 각 학생은 1년에 1개의 스티커만 받을 수 있으며, 한 번 스티커를 받으면 다시는 받지 못한다.
    - 3월 1일에 학생 중 한 명을 선정하여 칭찬 스티커를 발급한다.
    - 칭찬 스티커를 받은 학생은 다음 날 새로운 학생들에게 칭찬 스티커를 발급하는데, 발급하는 날의 날짜가

      소수인지 아닌지에 따라 다음과 같이 발급하는 스티커의 개수가 달라진다.
    - 날짜가 소수가 아닌 경우 : 전날 스티커를 발급받은 학생이 2명의 학생에게 스티커를 발급
    - 날짜가 소수인 경우 : 전날 스티커를 발급받은 학생이 3명의 학생에게 스티커를 발급

   

   비버고등학교의 학생이 1000명이라고 할 때, 모든 학생이 칭찬 스티커를 받기 위해서 최소 몇 일이 필요할까?
   칭찬 스티커 제도는 3월 1일에 처음 시작된다.
     *본 문제는 주어진 문제에 대한 답을 출력하는 문제로서 출력 예시가 없다. 문제에 대한 답을 출력하면 된다.

 

  • 입력

      입력없음

 

  • 출력

  모든 학생이 칭찬 스티커를 받을 때까지의 최소 일 수를 출력한다.

 

 

 

  • 나의 풀이

 

 

 

 약 한달간 학원에서 배우고 처음으로 싸이트에 들어가 문제를 풀어보았다. 정답률이 42프로라 그래도 설마 싶었는데 좀 어려웠다.  처음에 한사람이 스티커 하나를 갖고 시작하니, 소수가 아닌 1은 스티커가 2배로 커져야하는데 그냥 계산식으로는맞지않았다. 고민하다 마지막에 2로 나누는 것으로 해결했고, 스티커를 누적하다 조건에 만족하면 반복문을 나와하는 경우는  마지막에 if 문을 썼다. 

그리고 소수를 배열에 넣어  날짜 i를 반복하면서 맞춰볼까 싶었는데 소수가 규칙성이 없어  switch문으로 대신했다.