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

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