코딩테스트/🕊️프로그래머스
LEVEL 1. 이상한 문자 만들기
@soohh
2022. 9. 14. 10:47
🟪 나의 구현 스케치
처음에는 split으로 단어를 나누어 짝수번째 index의 문자열은 대문자로 홀수번째 index의 문자열은 소문자로 변경했다. 하지만 공백 개수를 고려하지 않아 테스트 케이스는 통과했으나 제출 시 실패했다.
다시 처음부터 구현을 했다. count로 각 단어의 index를 표시하는데 사용했고, isspace로 공백문자이면 공백을 더하고 count를 0으로 초기화시켜 다음 단어의 index를 처음 시작하도록 했다.
🟪 나의 구현 코드
처음 코드 - 공백 개수 고려 x
def solution(s):
answer = ""
slist = s.split()
for word in slist:
for i in range(len(word)):
if i%2 == 0:
answer += word[i].upper()
else:
answer += word[i].lower()
answer += " "
return answer[0:-1]
나중 코드 - 공백 개수 고려 o
def solution(s):
count=0
answer=""
for i in range(len(s)):
if s[i].isspace():
answer += " "
count=0
else:
if count%2==0:
answer += s[i].upper()
else:
answer += s[i].lower()
count+=1
return answer
🟪 다른 사람의 구현 코드
map(함수, 매개변수)를 이용한 방법이다. 공백을 포함한 숫자, 문자 모두 각 자리의 매개변수 s.split(" ")가 lambda함수로 전달된다.
여러 함수들이 조합되어 있는 구현 방법이다. 숏코딩이 어렵다면 이해만 하고 넘어가도 괜찮다.
def toWeirdCase(s):
return " ".join(map(lambda x: "".join([a.lower() if i % 2 else a.upper() for i, a in enumerate(x)]), s.split(" ")))
https://school.programmers.co.kr/learn/courses/30/lessons/12930
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr