-코드
s = input()
r = ''
if '_' in s:
flag = 0
if s[0] == '_' or s[-1] == '_' or '__' in s:
r = 'Error!'
else:
for i in s:
if i.isupper():
r = 'Error!'
break
if i == '_':
flag = 1
continue
if flag == 1:
r += i.upper()
flag = 0
continue
r += i
else:
if s[0].isupper():
r = 'Error!'
else:
for i in s:
if i.isupper():
r += '_' + i.lower()
continue
r += i
print(r)
처음에 입력을 input(). split('_')로 받아서 처리하려 했으나 이렇게 하면 대문자로 바꿀 경우 문제가 생겨서 input으로 입력을 받고 _가 문자열에 있을 경우와 없을 경우로 if문으로 설정을 하였습니다.
그리고 문자열에 _가 있을 경우 대문자로 바꿔줘야 하는데 이 부분을 어떻게 해야 할지 몰라서 찾아보니 그냥 flag를 이용하여 해결을 하면 되어서 허탈하게 해결하였고, 대문자 부분과 반대로 소문자로 바꾸는 부분은 쉬워서 코딩을 하여 제출했습니다.
하지만 실패해서 찾아보니 자바로 바꿀 때, _가 처음이나 끝에 있는 경우와 __가 들어가는 경우와 c++로 바꿀 때는 처음 영어가 대문자 일 경우를 생각하지 않아서 틀린 거여서 다시 코딩을 하고 제출하였으나 또 틀려서 코드를 읽어보니 Error를 print로 해서 잘못하면 출력이 2개가 나오게 되어서 틀린 거라 이 부분도 해결을 하였습니다.
'Beakjoon&프로그래머스 > 파이썬' 카테고리의 다른 글
[백준/파이썬]1059번 좋은 구간 (0) | 2021.09.24 |
---|---|
[백준/파이썬]1740번 거듭제곱 (0) | 2021.09.23 |
[백준/파이썬]2057번 팩토리얼 분해 (0) | 2021.09.16 |
[백준/파이썬]17254번 키보드 이벤트 (0) | 2021.09.15 |
[백준/파이썬]14606번 피자 (Small) (0) | 2021.09.15 |