Algorithm/프로그래머스
[Python] [코딩 기초 트레이닝] / 코드 처리하기
code-bean
2024. 8. 15. 18:24
[Q]
1. 문자열 [code]를 읽어옴
2. mode = 1 or 0 에 따라 짝수 문자열이나 홀수 문자열을 가져와야함
3. [code]에 1이 있을때마다 mode가 변경됨
4. 시작하는 mode는 0
def solution(code):
answer = ''
return answer
- 먼저 mode를 0에 고정시키고, 비어있는 문자열 [ret] 만들어야 함
- mode가 0인지 1인지 확인하고 경우의 수를 따져줘야함
- [ret]이 빈 문자열 그대로라면 'EMPTY'를 return 해야함
[A] (내가 쓴 답)
def solution(code):
mode = 0
ret = ''
for i in range(len(code)) :
if mode == 0 :
if (code[i] != '1') and (i%2 == 0):
ret += code[i]
elif code[i] == '1' :
mode = 1
else:
if (code[i] != '1') and (i%2 != 0):
ret += code[i]
elif code[i] == '1' :
mode = 0
if ret == '' :
return 'EMPTY'
return ret
[A] 다른 답들
def solution(code):
return "".join(code.split("1"))[::2] or "EMPTY"
도대체 사람들은 어떻게 이렇게 숏코딩을 할 수 있는거지..
def solution(code):
answer = ''
mode = 0
for i in range(len(code)):
if code[i] == '1':
mode ^= 1
else:
if i % 2 == mode:
answer += code[i]
return answer if answer else 'EMPTY'
* ^= : xor
* if i % 2 == mode:
answer += code[i]
-> if 문을 하나로 줄여줌