#34
서식지 분할
채점 준비중
시간 제한
2000ms
메모리 제한
256MB
제출
32
정답
14
맞힌 사람
12
정답 비율
43.8%
대전시에는 일자로 흐르는 갑천을 따라 형성된 갑천생태공원이 있다. 생태공원은 강의 상류에서 하류방향으로 N 개의 구역으로 나뉘어져 있고 i 번째 구역에는 S_i 라는 종 이름을 가진 물고기들이 서식하고 있다. 종의 이름은 편의 상 알파벳 소문자 하나이고, 이름이 같다면 두 종은 같은 종이다.
대전시는 환경 보호를 위해 생태공원을 두 구간으로 나누려고 한다. 그리고 나뉜 두 구간에 대해서 각각 생태 점수를 측정하려고 한다. 어떤 구간에 대한 생태 점수는 그 구간에 서식하는 서로 다른 물고기 종의 개수와 같다.
예를 들어, N = 7 이고 S 는 abcabcd 인 생태공원을 고려해보자. 만약 생태공원을 abc 와 abcd로 나눈다면 각각의 생태 점수는 3 + 4 로 총 7점으로 최대가 된다.
입력
첫째 줄에 정수 ~N (2 ≤ N ≤ 100,000)~이 주어진다.
둘째 줄에 알파벳 소문자로 이루어진 문자열 S 가 주어진다.
##출력
주어진 생태 공원을 두 구간으로 나눴을 때 얻을 수 있는 최대 생태 점수를 출력한다.
예제 입력 1
7
abcabcd
예제 출력 1
7
예제 입력 2
4
aazz
예제 출력 2
3
예제 입력 3
10
anaforever
예제 출력 3
9
참고
알파벳 빈도에서 했던 것 처럼 모든 알파벳 별 등장 빈도를 저장하면 임의의 구간의 서로 다른 알파벳의 개수를 빠르게 구할 수 있다.
코드 제출
로딩 중...
내 제출
아직 제출 내역이 없습니다.
맞은 사람
| 순위 | 사용자 | 언어 | 시간 | 메모리 | 코드 길이 |
|---|---|---|---|---|---|
| 🥇 | 202302564_성준혁 | C | 52ms | 1536KB | 719B |
| 🥈 | kaorin | C++ | 104ms | 5380KB | 995B |
| 🥉 | 202302534_김승현 | Python | 532ms | 12800KB | 520B |
| 4 | 202402751_한현욱 | Python | 577ms | 11392KB | 573B |
| 5 | 202102622_김우솔 | Java | 1036ms | 39296KB | 1274B |
| 6 | 202301773_이종현 | Java | 1037ms | 39024KB | 1069B |
| 7 | 201802070_김시온 | Java | 1043ms | 53264KB | 1535B |
| 8 | 202202596_배인수 | Java | 1064ms | 41220KB | 846B |
| 9 | 202302602_이준휘 | Java | 1312ms | 46336KB | 798B |
| 10 | 202102659_안우진 | Java | 1330ms | 44416KB | 784B |
| 11 | 202202658_황현석 | Java | 1389ms | 141152KB | 3290B |
| 12 | 202102700_정민용 | Python | 2293ms | 106996KB | 636B |
전체 제출
| # | 사용자 | 결과 | 언어 | 시간 | 메모리 | 코드 길이 | 제출 시간 |
|---|---|---|---|---|---|---|---|
| 4012 | 202302564_성준혁 | 정답 | C | 53ms | 1536KB | 701B | 2024. 05. 25. 17:18 |
| 4011 | 202302564_성준혁 | 정답 | C | 52ms | 1536KB | 719B | 2024. 05. 25. 17:18 |
| 3456 | 202302564_성준혁 | 오답 | Java | 1224ms | 32256KB | 1049B | 2024. 05. 08. 14:53 |
| 3455 | 202302564_성준혁 | 컴파일 에러 | C | - | - | 1049B | 2024. 05. 08. 14:52 |
| 3260 | 202401828_백성현 | 오답 | Python | 1739ms | 107608KB | 600B | 2024. 05. 02. 11:48 |
| 3259 | 202401828_백성현 | 오답 | Python | 1572ms | 107840KB | 612B | 2024. 05. 02. 11:48 |
| 3253 | 202402751_한현욱 | 정답 | Python | 577ms | 11392KB | 573B | 2024. 05. 02. 11:41 |
| 3247 | 202002511_송준원 | 시간 초과 | Java | 8841ms | 33792KB | 1256B | 2024. 05. 02. 11:39 |
| 3236 | 202401828_백성현 | 오답 | Python | 1451ms | 107640KB | 485B | 2024. 05. 02. 11:36 |
| 3235 | 202402751_한현욱 | 오답 | Python | 573ms | 14592KB | 537B | 2024. 05. 02. 11:36 |
| 3221 | 202102659_안우진 | 정답 | Java | 1330ms | 44416KB | 784B | 2024. 05. 02. 11:30 |
| 3220 | 202102659_안우진 | 오답 | Java | 1269ms | 44288KB | 786B | 2024. 05. 02. 11:30 |
| 3217 | 202002511_송준원 | 시간 초과 | Java | 8865ms | 33920KB | 1256B | 2024. 05. 02. 11:28 |
| 3201 | 202302602_이준휘 | 정답 | Java | 1312ms | 46336KB | 798B | 2024. 05. 02. 11:02 |
| 3197 | 202302602_이준휘 | 오답 | Java | 1296ms | 45952KB | 800B | 2024. 05. 02. 11:00 |
| 3194 | 202302602_이준휘 | 컴파일 에러 | Python | - | - | 800B | 2024. 05. 02. 11:00 |
| 3182 | 202102713_진민혁 | 시간 초과 | Java | 8848ms | 96640KB | 1000B | 2024. 05. 02. 10:53 |
| 3166 | 202102700_정민용 | 정답 | Python | 2293ms | 106996KB | 636B | 2024. 05. 02. 10:43 |
| 3093 | 202102700_정민용 | 정답 | Python | 2355ms | 106992KB | 599B | 2024. 05. 01. 14:07 |
| 3073 | 202102622_김우솔 | 정답 | Java | 1036ms | 39296KB | 1274B | 2024. 04. 30. 05:57 |
1 / 2