[파이썬 코드카타]
이상한 문자 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12930
1) 어떤 문제가 있었나
각 문자열에서 공백으로 나눠진 단어 기준으로 짝수번째는 대문자, 홀수번째는 소문자인 문자열을 반환
s = "try hello world"
return = "TrY HeLlO WoRlD"
2) 내가 시도해본 건 무엇인가
- 주어진 문자열을 split()로 잘라서 list에 넣고, for문으로 하나씩 꺼내서 짝수자리수는 upper, 홀수는 lower 되도록 적용
- 정확성 31.3%로 실패
def solution(s):
s = "try hello world"
answer = ""
s_list = s.split()
for i in s_list:
for j in range(len(i)):
if j % 2 == 0:
answer += str(i[j]).upper()
else:
answer += str(i[j]).lower()
answer += " "
answer = answer[0:-1]
return answer
3) 어떻게 해결했나
- 힌트를 참조하여 문자열의 시작과 끝에 문자열이 포함될 수 있고, 공백문자도 그대로 출력해야 함을 알게됨
> split() 를 그대로 쓰면 안되고, split(" ")로 써야 되는 것
- 첫 번째 for문 밑에 i가 공백문자일 경우에도 answer에 추가되도록 함수 추가
def solution(s):
answer = ""
s_list = s.split(" ") # ['', 'try', '', '', 'hello', 'world', '']
for i in s_list:
if i == "":
answer += i
else:
for j in range(len(i)):
if j % 2 == 0:
answer += str(i[j]).upper()
else:
answer += str(i[j]).lower()
answer += " "
answer = answer[0:-1]
return answer
4) 무엇을 새롭게 알았나
- 문제의 입출력 예시에 없는 조건도 파악하여 코드를 짜는 것이 중요
- 3진법 바꾸기 문제에서 다른 분들의 풀이를 참고한 것이 문자열 다루기에서도 무척 도움이 되었음
'TIL' 카테고리의 다른 글
[240315] 파이썬: 코드카타 42 & SQL: 코드카타 146~148 (0) | 2024.03.15 |
---|---|
[240315] 스파크(spark): 컴퓨터와 데이터, 메모리, 클라우드 (1) | 2024.03.15 |
[240313] 파이썬: 코드카타 40 (0) | 2024.03.13 |
[240312] 실전 프로젝트: 대시보드 스케치 & 피그마 배경 생성 및 태블로 적용 (0) | 2024.03.12 |
[240311] 실전 프로젝트: 태블로 대시보드 시뮬레이션 대시보드 (0) | 2024.03.12 |