[programmers] 프로그래머스 Level1 이상한 문자 만들기
(파이썬 Python)
* 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제
프로그래머스 Level1 이상한 문자 만들기
1) 문제
2) 풀이 과정
1.문자열의 개수만큼 반복
2. 제한 조건 "먼저" 기술
ㄴ1) 초기화 해줄 것
3. 카운트의 값을 기준으로 짝수이면 대문자
4. 카운트의 값이 홀수이면 소문자
아래의 풀이를 직접 손으로 적어나가다 보면 이해가 된다.
i=0
count=0
answer = "T"
count = 1
i=1
answer = "Tr"
count = 2
i=2
answer = "TrY"
count = 3
i=3
count = 0
answer = "TrY "
i=4
answer = "TrY H"
count = 1
(.. 나머지는 알아서)
3) 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
def solution(s):
answer = ""
count = 0
for i in range(len(s)):
if(s[i]==" "):
count = 0
answer += " "
elif(count % 2 == 0):
answer += s[i].upper()
count += 1
elif(count % 2 == 1):
answer += s[i].lower()
count += 1
return answer
|
cs |
4) 정리 노트
< 처음 풀었을 때 오 답 >
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
def solution(s):
answer = ""
count = 0
for i in range(len(s)):
if(count % 2 == 0):
answer += s[i].upper()
count += 1
elif(count % 2 == 1):
answer += s[i].lower()
count += 1
elif(s[i] == " "):
count = 0
answer += " "
return answer
|
cs |
: 처음에 쓴 코드는 순서를 달리했다.
: 제한 조건을 무시하고, 문제에서 주어진 예시만으로 해석한 결과다.(우선 고려해야 하는 건 맞지만, 주어진 예시만으로 판단하게 된다면 이처럼 잘못 생각할 수 있다.)
ㄴ> 1. 공백을 먼저 고려하지 않게 된다면, count % 2 == 1인데, 빈칸인 경우가 있게 된다면? 오답이 돼버리기 때문이다.
Ex)
s = "a book"의 경우
elif(count % 2 ==1)의 경우와 elif(s[i] == " "):
모두 해당이 돼버린다.
위에서 아래로 실행이 되기 때문에 두 번째 란에 걸려버리기 때문에 오답이 돼버린다.
ㄴ> 2. 또한 문제에서 주어진 말대로, "문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준) 별로 짝/홀수 인덱스를 판단해야 합니다. "라는 조건에도 위배가 되기 때문이다.
: 문제를 풀 때, 제한조건을 "먼저" 고려해주면 좋다.
: 기초에 의거한 풀이가 제일 좋은 것 같다. 일단 기준을 잡기 위해 기초에 의거한 풀이로 기준을 잡고, 나중에 필요한 내장 함수들을 이용해서 푸는 게 좋은 것 같다.
: 스스로 학습해 나갈 함수(타인의 풀이와 나의 풀이를 비교 및 필요한 함수들을 내걸로 만드는 작업)
1. 문자열 split()함수
* 소스 코드 및 정리한 내용의 저작권은 글쓴이에게 있습니다.
'*Algorithm > Programmers_Level1' 카테고리의 다른 글
[programmers] 프로그래머스 Level1 최대공약수와 최소공배수(파이썬 Python) (0) | 2020.10.14 |
---|---|
[programmers] 프로그래머스 Level1 시저 암호(파이썬 Python) (0) | 2020.10.10 |
[programmers] 프로그래머스 Level1 콜라츠 추측(파이썬 Python) (0) | 2020.09.05 |
[programmers] 프로그래머스 Level1 x만큼 간격이 있는 n개의 숫자(파이썬 Python) (0) | 2020.09.03 |
[programmers] 프로그래머스 Level1 약수의 합(파이썬 Python) (0) | 2020.09.03 |
댓글