문제) 이상한 문자 만들기
코딩테스트 연습 - 이상한 문자 만들기
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을
programmers.co.kr
- 처음 풀이(오답)
- '하나 이상의 공백문자로 구분' 을 고려하지 않음
→ 입력값에 공백이 여러 개 들어가면 여러개 출력해줘야 함
→ join으로 합치면 공백 한개만 생김
def solution(s):
s=s.split()
s2=''
answer=[]
for i in s:
for j in range(len(i)):
s2+=i[j].upper() if j==0 or j%2==0 else i[j].lower()
answer.append(s2)
s2=''
answer=' '.join(answer)
return answer
- 내 풀이
- 공백문자인지 확인 하는 방법: .isalpha() ==False 이용
- isalpha 함수에 () 안붙이면 cnt변수가 공유가 안됨.
→ cnt=0이 처리가 되지 않아서 계속 수정하느라 시간이 오래 걸림...... () 신경쓰기
def solution(s):
answer=''
cnt=0
for i in range(len(s)):
if s[i].isalpha()==False:
answer+=' '
cnt=0
else:
answer+=s[i].upper() if cnt==0 or cnt%2==0 else s[i].lower()
cnt+=1
return answer
"try hello world"
"I am Paul"
#결과
"TrY HeLlO WoRlD"
"I Am PaUl"
- 다른 사람 풀이
- 공백문자 확인하는 방법: 그냥 str==' ' 도 가능
def solution(s):
answer=''
index=0
for c in s:
if c==' ':
answer+=c
index=0
continue
answer+=c.upper() if index%2==0 else c.lower()
index+=1
return answer'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 1] 예산 (0) | 2022.02.21 |
|---|---|
| [프로그래머스] [Level 1] 약수의 합 (0) | 2022.02.21 |
| [프로그래머스] [Level 1] 자릿수 더하기 (0) | 2022.02.21 |
| [프로그래머스] [Level 1] 자연수 뒤집어 배열로 만들기 (0) | 2022.02.19 |
| [프로그래머스] [Level 1] 정수 내림차순으로 배치하기 (0) | 2022.02.16 |