파란색 : 풀면서 어려웠던 부분 or 고려해야 될 부분
빨간색 : 해결방법
초록색 : 느낀 점
문제
https://www.acmicpc.net/problem/10808
알파벳 소문자로만 이루어진 단어 S가 주어진다. 각 알파벳이 단어에 몇 개가 포함되어 있는지 구하는 작성하는 문제이다.
풀이 : 내가 작성한 코드
처음 생각했을 때는 입력된 string값을 기준으로 또 다른 a~z을 체크하여 입력된 string요소의 알파벳이 해당하는 수를 카운팅 해서 추 출력하려고 했다. 그러면 총 O(N^2) 시간 복잡도였다. 다른 방법으로는 미리 a~z의 해당하는 26개 크기를 가지는 배열을 미리 생성했다. 그렇게 하면 a~z까지 각각의 string요소의 해당하는 알파벳에 위치가 정해 지므로, 입력값의 요소로 for문을 돌리면서 해당하는 알파벳에 1씩 증가해 주면 된다.
느낀 점
단순히 정답을 출력하는 풀이식보다는 좀 더 최적화여 값을 구하는 연습을 해야겠다.
'알고리즘자료구조 > 알고리즘문제' 카테고리의 다른 글
[백준] C# 유기농 배추 (0) | 2021.10.20 |
---|---|
[프로그래머스] [큐] 프린터 (0) | 2021.10.03 |
[해커랭크] Caesar Cipher (0) | 2021.10.02 |
프로그래머스_C#)최대공약수와 최소공배수 (0) | 2019.09.12 |
프로그래머스_C#)제일 작은 수 제거하기 (0) | 2019.09.10 |