728x90
반응형
입력이 대문자인 경우 shift를 추가로 눌러줘야 되므로 대문자의 개수(cnt_other)를 세주고, 왼손과 오른손 영역에 속하는 알파벳의 개수(cnt_left, cnt_right)도 각각 세준다.
그 후 cnt_other를 cnt_left와 cnt_right의 차이가 최대한 줄어들도록 골고루 나눠주면 된다.
EX) 입력이 Hello World인 경우
cnt_other = 3, cnt_left = 4, cnt_right = 6
-> cnt_left = 4 + 3 = 7, cnt_right = 6
S = input()
li_left = 'qwertyasdfgzxcvb'
li_right = 'uiophjklnm'
cnt_left, cnt_right, cnt_other = 0, 0, 0
for i in S:
if i.isupper():
cnt_other += 1
for i in S.lower():
if i in li_right:
cnt_right += 1
elif i in li_left:
cnt_left += 1
else:
cnt_other += 1
while cnt_other != 0:
if cnt_left <= cnt_right:
cnt_left += 1
else:
cnt_right += 1
cnt_other -= 1
print(cnt_left, cnt_right)
728x90
반응형
'Agorithm > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 5543번 상근날드(python) (0) | 2020.03.07 |
---|---|
백준 알고리즘 18230번 2xN 예쁜 타일링(python) (0) | 2020.02.17 |
백준 알고리즘 15953번 상금 헌터(python) (0) | 2020.02.17 |
백준 알고리즘 15596번 정수 N개의 합(python) (0) | 2020.02.17 |
백준 알고리즘 15552번 빠른 A+B(python) (0) | 2020.02.17 |