코딩테스트 역량 강화 교육(거점형 특화 프로그램)이라는 프로그램에 참여해 공부한 내용입니다.
- IT 직무로 취업을 희망하는 지원자들이 코딩테스트를 통과할 수 있는 알고리즘을 활용한 프로그래밍 교육이며, PCCP 자격증 취득이 목표인 프로그램
- 상세 설명 - 수원대학교(대학일자리 플러스센터)
앞서 공부한 해시을 사용해 학급 회장 문제를 풀어보겠다.
학급 회장을 뽑는데 후보로 기호 A, B, C, D, E 후보가 등록을 했습니다.
투표용지에는 반 학생들이 자기가 선택한 후보의 기호(알파벳)가 쓰여져 있으며 선생님은 그 기호를 발표하고 있습니다.
매개변수 s에 투표용지에 쓰여져 있던 각 후보의 기호가 선생님이 발표한 순서대로 문자열로 주어지면 어떤 기호의 후보가 학급 회장이 되었는지 반환하는 프로그램을 작성하세요.
반드시 한 명의 학급회장이 선출되도록 투표결과가 나왔다고 가정합니다.
입력(s) | 출력(answer) |
---|---|
"BACBACCACCBDEDE" | C |
"AAAAABBCCDDDD" | A |
"AABBCCDDEEABCB" | B |
from collections import defaultdict
def solution(s):
answer = ""
sH = defaultdict(int)
for x in s:
sH[x] += 1
maxC = 0
for key in sH:
if sH[key] > maxC:
maxC = sH[key]
answer = key
return answer
print(solution("BACBACCACCBDEDE"))
print(solution("AAAAABBCCDDDD"))
print(solution("AABBCCDDEEABCB"))
defaultdict(int)
를 이용해 모든 key
값을 0
으로 초기화for
문을 통해 s
의 모든 원소를 돌며 sH[x]
에 key와 빈도 수를 sH
의 value
값을 비교해 가장 큰 값 maxC
를 찾았다면 answer
에 해당 key
값을 저장하고 최종적으로 return
from collections import Counter
def solution(s):
answer = ""
sH = Counter(s)
maxC = 0
for key in sH:
if sH[key] > maxC:
maxC = sH[key]
answer = key
return answer
print(solution("BACBACCACCBDEDE"))
print(solution("AAAAABBCCDDDD"))
print(solution("AABBCCDDEEABCB"))
Counter
를 이용해 sH
에 s
의 문자 빈도 수를 센 Counter 객체
를 반환sH
의 value
값을 비교해 가장 큰 값 maxC
를 찾았다면 answer
에 해당 key
값을 저장하고 최종적으로 return