jh05013   5년 전

처음 풀 때도 그랬는데 문제 이해가 전혀 안 됩니다. 아예 틀렸다고도 할 수 있을 것 같습니다. 문제 설명대로라면 "4796"은 "4"에서 벌점 4점, "7"에서 11점으로 1주 퇴사, "9"에서 20점으로 2주 퇴사, "6"에서 26점으로 2주 퇴사, 총 1+2+2 = 5주 퇴사가 되어야 하는데 정답은 3입니다.

문제

설곽인들은 벌점, 주로 의행관 벌점을 받으며 살아가고 때때로 기숙사 생활의 꽃인 퇴사를 하기도 한다. 벌점을 받을 때마다 벌점 감량 프로그램을 할 수도 있지만, 4층 선배님의 방에서 재침을 하고 조회는 물론 1교시 물리 수업을 무단 결과하는 등 벌점을 한 번에 많이 받는 행동을 하면 벌점이 10점을 넘어 퇴사를 당한다. 비록 그자가 수석이라 할지라도!

설곽인들은 잘 알고 있겠지만 설곽의 벌점과 퇴사 규칙은 다음과 같다.

  1. 벌점 X점을 받으면 누적 벌점에 X점이 추가된다.
  2. X점이 추가되어서 누적 벌점을 10으로 나눈 몫이 증가한 경우 퇴사를 당한다. 이 몫이 1, 2, 3인 경우 1, 2, 3주 퇴사, 4인 경우 무기 퇴사, 4보다 큰 경우 영구 퇴사를 당한다.
  3. 무기 퇴사나 영구 퇴사를 당하면 의행관에 다시 들어올 수 없고 벌점도 더 받을 수 없다.

이제 입력된 데이터로 벌점의 주인이 총 몇 주 동안 퇴사를 당하는지 주 단위로 계산해 보자. 단, 퇴사 기간 동안에는 벌점을 받지 않고, 퇴사가 끝난 이후 다시 벌점을 받기 시작한다고 가정한다.

참고로 0~9의 아스키 코드는 48~57이고, A~Z의 아스키 코드값은 65~90이다.

입력

첫 줄에 퇴사 기간을 계산해야 하는 학생의 수 N (N ≤ 20) 이 주어진다.

두 번째 줄부터 N개의 줄에 걸쳐 각 학생의 정보가 주어진다. 한 줄에 한 학생이 순서대로 받은 벌점이 공백 없는 문자열로 주어진다. 0점부터 9점까지의 벌점은 숫자 0 ~ 9로, 10점부터 35점까지의 벌점은 A ~ Z의 알파벳 대문자로 주어진다. 이 문자열의 길이는 30을 넘지 않는다.

가령, 입력으로 B1A4가 주어진다면 11점, 1점, 10점, 4점의 순서로 벌점을 받은 것이다.

출력

각각의 학생들이 퇴사해 있는 총 기간을 주 단위로 한 줄에 한 명씩 출력하자.

무기 퇴사나 영구 퇴사를 당한 경우 퇴사 기간을 출력하고, 그 뒤에 무기 퇴사의 경우 (weapon)을, 영구 퇴사의 경우 (09)를 공백 없이, 괄호를 포함하여 추가로 출력하고 이는 퇴사 기간에 포함하지 않는다.

startlink   5년 전

수정했습니다.

댓글을 작성하려면 로그인해야 합니다.