사용자 세그먼테이션
면접 대비시간 제한1초메모리 제한1024 MB
시간에 따라 사용자별 방문을 관리하며, 각 사용자의 최근성과 빈도를 12개 RF 세그먼트 중 하나로 분류해 질의에 답한다.
문제
ZOYI는 사이트에 들어온 온라인 사용자와 대화하는 채널이라는 도구를 만들고 있다. 최근에는 채널을 쓰는 온라인 사용자를 분류하려고 RF(Recency / Frequency) 모델을 도입했고, 다음과 같이 계산해서 사용자를 나누기로 했다.

, 이고, 모든 와 는 정수다.
각 온라인 사용자는 접속 기록에 따라 , 값이 정해지고 다음 12가지 중 하나로 분류된다.
New CustomerPromisingAbout to SleepHibernatingLostPotential LoyalistNeed AttentionAbout to LeaveChampionLoyal CustomerCan't Lose ThemNone
이 중 None은 사용자의 접속 기록이 없을 때를 뜻한다. 그림에서 점 가 두 개 이상의 분류 경계에 놓이면 의 분류를 따른다. 예를 들어 가 이면 Hibernating으로 분류되고, 이면 Loyal Customer로 분류된다. 이 규칙까지 적용한 분류는 다음 표와 같다.
당신은 RUN에 관심 있는 사이트 이용자 현황을 알고 싶어서 RUN 지원 사이트에 채널을 설치하고 분석하려고 한다. 이 사이트에서는 접속한 사용자의 , 를 다음과 같이 정하기로 했다.
- : 현재 시간이 일 때, 에서 그 사용자의 가장 최근 접속 시간을 뺀 값
- : 그 사용자의 접속 횟수
사이트 이용자의 접속 이벤트가 주어질 때 위 기준으로 고객을 분류하는 프로그램을 작성하시오.
입력
첫째 줄에 , , , 를 나타내는 자연수 4개가 순서대로 공백으로 구분되어 주어진다.
둘째 줄에 , , , 를 나타내는 자연수 4개가 순서대로 공백으로 구분되어 주어진다.
셋째 줄에 접속 이벤트의 수 이 주어진다.
이어지는 개의 줄에 이벤트 정보가 일어난 순서대로 주어진다. 이 가운데 번째 줄의 이벤트는 시간 에 일어난 이벤트를 뜻한다.
각 이벤트는 와 가 공백으로 구분된 형태로 주어진다. 는 사용자 이름이고, 공백 없이 길이 10 이하의 알파벳 대소문자로 이루어진다. 는 1과 2 중 하나의 값을 가진다. 1이면 사용자가 사이트에 접속했다는 뜻이고, 2이면 그 순간 그 사용자가 무엇으로 분류되는지 출력해야 한다.
출력
가 2인 이벤트마다 그 고객이 어떻게 분류되는지 한 줄에 하나씩 출력한다. 따옴표는 출력하지 않는다.
제한
힌트
첫 번째 예제를 보자. 시간 3에서 Alex는 접속 횟수가 1회이고 가장 최근 접속이 시간 2였으므로 , 이다. 따라서 New Customer로 분류된다.
시간 7에서 Alex는 접속 횟수가 2회이고 가장 최근 접속이 시간 6이므로 , 이고 Potential Loyalist로 분류된다.
시간 8에서 RUN은 접속 횟수가 3회이고 가장 최근 접속이 시간 5이므로 , 이고 Need Attention으로 분류된다.