반응형
문제
https://www.acmicpc.net/problem/16139
풀이
누적 합을 사용하여 풀이할 수 있습니다.
저는 문자의 갯수가 나오는 누적합을 구하기 위해 Dictionary를 Array로 감싸주었습니다.
"mandos" 라는 문자열이 있다면,
array[0] = ["m": 1]
array[1] = ["m": 1, "a": 1] 과 같은 형태로 만들어 주었습니다.
그 이후 누적 합을 구하는 것 처럼,
l ~ r 까지의 알파벳(a)이 들어오는 횟수를 array[r][a] - array[l - 1][a] 와 같이 구해줬습니다.
소스코드
후기
안풀릴줄 알았는데.. 통과돼서 조금 신기했던 문제였습니다.
다른분들의 풀이를 보니깐 아스키 값으로 푸시는 분도 계셨는데 좋은 방법인 것 같습니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 11660 구간 합 구하기 5 (Swift) (0) | 2023.04.07 |
---|---|
[BOJ] 백준 10986 나머지 합 (Swift) (0) | 2023.04.07 |
[BOJ] 백준 2559 수열 (Swift) (0) | 2023.04.07 |
[BOJ] 백준 11659 구간 합 구하기 4 (Swift) (0) | 2023.04.07 |
[BOJ] 백준 12865 평범한 배낭 (Swift) (0) | 2023.04.07 |