DOJ logoDOJ
문제
최근 추가된 문제들저장한 문제
카테고리DLC대회그룹팀게시판
랭킹
문제 풀이 랭킹스트릭 랭킹DOJ Power 랭킹
현황
문제 제안로그인회원가입
DOJ logoDOJ

OI 서브태스크 채점, Elo 레이팅, Discord 인증을 갖춘 커뮤니티 온라인 저지.

문제
문제 목록카테고리
커뮤니티
대회랭킹게시판공지사항외부 대회 개최이용 안내
계정
로그인회원가입채점 현황
정책
이용약관DLC 이용 규칙개인정보 처리방침API 사용 설명서언어별 채점 환경대회 순위 보상레이팅과 퍼포먼스
© 2026 DOJ
모든 권리 보유
해설

Italian brainrot

문제로 돌아가기

해설

캐릭터들 사이에 아무 전체 순서를 하나 정한다. 예를 들어 입력으로 주어진 순서가 앞선 캐릭터가 항상 이긴다고 정하자.

그러면 캐릭터 BBB가 캐릭터 AAA를 이겼다는 것은 BBB가 AAA보다 입력에서 앞에 있다는 뜻이다. 또한 캐릭터 CCC가 캐릭터 BBB를 이겼다면 CCC는 BBB보다 입력에서 앞에 있다. 따라서 CCC는 AAA보다도 입력에서 앞에 있으므로, CCC는 AAA를 이긴다.

즉 입력 순서대로 앞선 캐릭터를 출력하면 항상 조건을 만족한다.

각 이름에 입력 순서 번호를 저장해 두고, 각 질의마다 번호가 작은 이름을 출력하면 된다. 같은 이름이 두 번 주어졌다면 그 이름을 출력한다.

시간 복잡도는 O(L+Q)O(L + Q)O(L+Q)이다. 여기서 LLL은 입력으로 주어진 캐릭터 이름 길이의 합이다.