본문 바로가기
IT/Programming_프로그래밍

[Py.CheckiO / Python] Py.CheckiO의 Scientific Expedition - Caps Lock 파이썬 문제 풀이 및 해석

by 무브영/movewoo0 2021. 3. 28.
728x90
반응형

안녕하세요. 이번 포스팅에서는 Py.CheckiO 의 Scientific Expedition 레벨에 있는 Caps Lock 문제풀이를 해보겠습니다.

 

주의:
제 답이 최고/최적화된 답이 아닐 수 있으며, 해결하는 것에만 집중한 답이기 때문에 좀 더 나은 방법이나 해석이 있으시다면 댓글 부탁드립니다.

 

 


 

0. Caps Lock 문제 내용

 

Scientific Expedition 레벨의 Caps Lock 문제 내용입니다.

 

주어진 문자열(list)에서 'a' 가 나타날 때, 'Caps Lock' 키를 누룬 것처럼 인식이 되어 

 

'a' 뒤에 나오는 단어들이 대문자가 됬다가 또 다른 'a' 가 나오면 다시 원래대로인 소문자로 돌아가는 문제입니다.

 

제약조건은 원래의 주어진 문자열에서 'a' 들이 삭제가 되야 한다는 점입니다. 

 

Caps Lock 문제 내용

 


 

 

1. Caps Lock 문제 풀이

 

'a' 가 한번만 나온다면 'a' 가 위치한 index 값을 얻어서 그 뒤의 문자열들을 대문자로 변환하면 쉽게 끝나겠지만

 

문자열에 'a' 가 여러번 나올 때를 생각해야 합니다. 

 

'a' 가 나타날 때, Caps Lock 이 눌린다고 생각한다면 Caps Lock 이 활성화 된 상태와 활성화되지 않은 상태가 있을 것입니다. 

 

이 두가지 상태를 나타내기 위한 변수 flag를 하나 만듭니다.

 

이 flag는 

flag=1(기본값)    --->    Caps Lock이 비활성화 된 상태
flag=-1              --->    Caps Lock이 활성화 된 상태 

를 뜻하며 'a' 가 나타날 때 마다 flag의 값에 (-1)을 곱하면서 상태가 바뀝니다. 

 

for 반복문을 통해서 주어진 문자열 text를 돌면서 단어들을 새 문자열 tmp_text에 붙입니다.

 

만약 'a' 가 나타나면 flag에 (-1)을 곱하고 Caps Lock 상태를 바꾸면서 다음 문자로 넘어갑니다.

 

flag의 상태에 따라서 flag가 1인경우엔 Caps Lock이 비활성화된 상태이므로 새로운 문자열(tmp_text)에 원래의 문자 그대로 붙입니다.

 

flag가 -1인 경우엔 Caps Lock이 활성화된 상태이므로 새로운 문자열에 대문자로 변환한 문자를 더해서 문자열을 만듭니다.

 

 

 

 

 

Caps Lock 문제 풀이

 


 

 

본 포스팅의 내용 및 이미지를 무단 전재, 재배포 또는 복사를 금지합니다.

인용 시 출처와 같이 공개해주세요!

도움이 되셨다면 댓글 또는 공감 부탁드립니다!

728x90
반응형

댓글