RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R01563

가위바위보 토너먼트

Silver IV 실버 IV
난이도
2s
시간 제한
256MB
메모리 제한
1
맞았습니다!!
2
제출 수
50.0%
정답률
레이팅

의견: 0

설명

\(2^K\) 명의 선수가 \(1\)번부터 \(2^K\)번까지 한 줄로 서서 단판 토너먼트를 벌인다. 각 선수는 처음부터 끝까지 같은 손만 낸다. 손은 바위(R), 가위(S), 보(P) 중 하나이다.

토너먼트는 다음과 같이 진행된다. 매 라운드마다 살아남은 선수들을 줄 선 순서대로 두 명씩 묶어( \(1\)번째와 \(2\)번째, \(3\)번째와 \(4\)번째, \(\dots\) ) 경기를 치르고, 각 경기의 승자만 다음 라운드로 올라간다. 이때 진출한 선수들의 상대적인 순서는 그대로 유지된다. 한 명만 남을 때까지 라운드를 반복하며, 마지막에 남은 선수가 우승자이다.

한 경기의 승패는 가위바위보의 일반적인 규칙으로 정해진다. 즉, 바위는 가위를, 가위는 보를, 보는 바위를 이긴다. 두 선수가 같은 손을 내서 비기는 경우에는 번호가 더 작은(줄에서 앞에 선) 선수가 진출한다.

선수들이 내는 손이 주어질 때, 우승자의 원래 번호를 구하라.

제약

\(0 \le K \le 20\)

둘째 줄 문자열의 길이는 정확히 \(2^K\) 이며, 각 문자는 R, S, P 중 하나이다.

입력 형식

첫째 줄에 정수 \(K\) (\(0 \le K \le 20\)) 가 주어진다.

둘째 줄에 길이 \(2^K\) 인 문자열이 주어지며, \(i\)번째 문자는 \(i\)번 선수가 내는 손을 나타낸다. 문자는 R(바위), S(가위), P(보) 중 하나이다.

출력 형식

우승자의 원래 번호(1-based)를 한 줄에 출력한다.

예제 1
입력
1
PR
출력
1
설명

선수가 2명이다. 1번은 보(P), 2번은 바위(R)를 낸다.
보는 바위를 이기므로 1번 선수가 우승한다.

예제 2
입력
2
RSPS
출력
1
설명

선수가 4명이다.
1라운드: (1번 R vs 2번 S) → R가 S를 이겨 1번 진출, (3번 P vs 4번 S) → S가 P를 이겨 4번 진출.
결승: (1번 R vs 4번 S) → R가 S를 이겨 1번 우승.

예제 3
입력
3
RRSPPRSS
출력
1
설명

동점(같은 손)일 때는 항상 더 작은 번호의 선수가 진출한다.
1라운드: (1 R vs 2 R)→동점이라 1번, (3 S vs 4 P)→S가 P를 이겨 3번, (5 P vs 6 R)→P가 R를 이겨 5번, (7 S vs 8 S)→동점이라 7번.
2라운드: (1 R vs 3 S)→R가 S를 이겨 1번, (5 P vs 7 S)→S가 P를 이겨 7번.
결승: (1 R vs 7 S)→R가 S를 이겨 1번 우승.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

가위바위보 토너먼트

개요
출제자 난이도 Silver IV 실버 IV 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

가위바위보 토너먼트

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8