Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- dp
- 백준
- 부스트캠프_AITech3기
- 다이나믹프로그래밍
- Level1
- 단계별문제풀이
- 그래프이론
- ODQA
- Level2_PStage
- 개인회고
- 알고리즘스터디
- Level2
- 정렬
- 프로그래머스
- 구현
- dfs
- 기술면접
- 부스트캠프_AITech_3기
- python3
- 백트랙킹
- 파이썬 3
- mrc
- 이진탐색
- U_stage
- 주간회고
- 최단경로
- 그리디
- 다시보기
- 알고리즘_스터디
- 이코테
Archives
- Today
- Total
국문과 유목민
21. 이상한 문자 만들기 본문
0. 문제
링크) https://programmers.co.kr/learn/courses/30/lessons/12930
1. 알고리즘 계획
- 단어를 리스트로 쪼갠다. split()이용
- 모든 단어를 대문자화 한다.
- 두번째에 해당하는 문자만 소문자로 만든다.
- 쪼갰던 문자를 다시 합쳐준다. join()이용
2. 나의 코드
def solution(s):
answer = []
ls = s.split(" ")
for v in ls:
word_ls = list(v.upper())
for j in range(len(word_ls)):
if j % 2 == 1:
word_ls[j] = word_ls[j].lower()
answer.append("".join(word_ls))
return " ".join(answer)##sample
3. 다른 사람의 코드
def solution2(s):
return ' '.join([''.join([c.upper() if i % 2 == 0 else c.lower() for i, c in enumerate(w)]) for w in s.split()])
- 리스트 컴프리핸션에 이중 for문 사용
def solution3(s):
return " ".join(map(lambda x: "".join([a.lower() if i % 2 else a.upper() for i, a in enumerate(x)]), s.split(" ")))
- 위와 방법은 유사하나 map함수를 이용
4. 정리 및 리뷰
- 알고리즘은 쉽다고 생각했는데 코드를 줄이는 것을 너무 신경쓰지 못했다.
- 쪼개고 합치는 원리는 똑같다. 이를 얼마나 압축했는지에 차이
코드 만족도: ★★★★☆
'알고리즘_코딩테스트 > 프로그래머스_Level1' 카테고리의 다른 글
23. 자연수 뒤집어 배열로 만들기 (0) | 2020.09.11 |
---|---|
22. 자릿수 더하기 (0) | 2020.09.11 |
20. 약수의 합 (0) | 2020.09.10 |
19. 시저암호 (0) | 2020.09.10 |
18. 문자열을 정수로 바꾸기 (0) | 2020.09.10 |
Comments