문제 4720 · 킬로 IV
자전거 대여소 사이의 양방향 이용
댓글 0| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms | 측정하지 않음 | 0 | 0 | 0 | 0.00% |
문제
공유 자전거 운영 담당자는 대여소 사이의 이동 기록을 이용하여 대여소 배치를 검토한다. 같은 두 대여소 사이에서 한쪽 방향으로만 이용이 발생하는지, 양쪽 방향으로 모두 이용이 발생하는지를 구분하면 자전거 회수 계획을 세우는 데 도움이 된다. 이번 분석에서는 이동 횟수와 시각을 제외하고, 각 방향의 이동이 한 번이라도 있었는지만 확인한다. 대여소 식별자는 숫자 0부터 9까지와 대문자 알파벳 A부터 Z까지를 사용한 정확히 두 글자의 문자열이다. 앞의 0도 식별자의 일부이므로 01과 10은 서로 다른 대여소다. 입력에 등장하는 모든 식별자는 실제 대여소를 나타내며, 별도의 대여소 목록은 주어지지 않는다. 이동 기록 하나는 공백 없는 네 글자로 표현한다. 앞의 두 글자는 출발 대여소이고 뒤의 두 글자는 도착 대여소다. 예를 들어 0AA3은 0A에서 출발하여 A3에 도착한 기록이다. 같은 이동 기록이 여러 번 등장할 수 있다. 출발 대여소와 도착 대여소가 같은 기록도 있을 수 있으나, 이러한 기록은 대여소 사이의 이동을 나타내지 않으므로 이번 분석에서 완전히 제외한다. 서로 다른 두 대여소 U와 V에 대해 U에서 V로 간 기록과 V에서 U로 간 기록이 모두 있으면 이 두 대여소의 쌍을 양방향 이용 쌍이라고 한다. 두 방향 중 정확히 한 방향의 기록만 있으면 단방향 이용 쌍이라고 한다. 어느 방향의 기록도 없으면 집계하지 않는다. 쌍에서는 순서를 구별하지 않으므로 U와 V의 쌍과 V와 U의 쌍은 같은 쌍이다. 하나의 쌍에서 같은 방향의 이동이 여러 번 나타나더라도 그 쌍을 여러 번 세지 않는다. 또한 한 쌍이 양방향 이용 쌍이면 단방향 이용 쌍에는 포함하지 않는다. 입력된 모든 기록을 확인한 시점의 분류만 사용하며, 기록을 읽는 중간에 어느 분류였는지는 결과에 영향을 주지 않는다. 최종 양방향 이용 쌍의 수와 단방향 이용 쌍의 수를 구한다.
입력
첫째 줄에 이동 기록 수 N이 주어진다. N은 1 이상 79,000 이하의 정수다. 다음 N개 줄에 이동 기록이 하나씩 주어진다. 각 기록은 문자 0~9와 A~Z로만 이루어진 길이 4의 문자열이다.
출력
양방향 이용 쌍의 수와 단방향 이용 쌍의 수를 공백으로 구분하여 한 줄에 출력한다. 집계되는 쌍이 없으면 0 0을 출력한다.
예제 입력 1
6 0001 0100 0001 0102 0201 0202
예제 출력 1
2 0
예제 입력 2
4 AAAB AAAB BABB AAAA
예제 출력 2
0 2
예제 입력 3
2 0000 ZZZZ
예제 출력 3
0 0
힌트 펼치기
- 자기 자신으로 돌아온 기록을 제외하고, 방향을 유지한 이동 기록을 집합에 저장한다.
- 반대 방향 기록도 존재하는 원소의 수는 양방향 이용 쌍 수의 두 배다.
관련 서재 장
알고리즘 분류
해시집합문자열풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
댓글 0
로그인하면 댓글을 쓸 수 있습니다.
댓글 접기·펼치기
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| JavaScript | 브라우저 JavaScript | 1000ms / 테스트 | 측정하지 않음 |
| TypeScript | TypeScript 5.9.3 | 1000ms / 테스트 | 측정하지 않음 |
| Python 3 | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음 |
| C | YoWASP Clang 22 | 2000ms / 테스트 | 측정하지 않음 |
| C++ | YoWASP Clang 22 / libc++ | 2000ms / 테스트 | 측정하지 않음 |
| Java | OpenJDK javac + TeaVM (Java 21 문법) | 3000ms / 테스트 | 측정하지 않음 |
| Lua | Wasmoon 1.16.0 / Lua 5.4 | 3000ms / 테스트 | 측정하지 않음 |
| Ruby | Ruby 3.4 / ruby.wasm 2.10.1 | 5000ms / 테스트 | 측정하지 않음 |
| Scheme | BiwaScheme 0.8.3 | 5000ms / 테스트 | 측정하지 않음 |
| Prolog | SWI-Prolog / swipl-wasm 8.2.5 | 5000ms / 테스트 | 측정하지 않음 |
| Perl | Perl 5.28 / WebPerl 0.09-beta | 5000ms / 테스트 | 측정하지 않음 |