JSITCLUB

파이썬 - 프로그래머스- 이상한 문자 만들기 본문

파이썬/문제풀이

파이썬 - 프로그래머스- 이상한 문자 만들기

jsitclub 2020. 7. 21. 13:13

프로그래머스 level 1

 

문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

제한 사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.

  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

입출력 예

s

return

"try hello world"

"TrY HeLlO WoRlD"

 

입출력 예 설명

try hello world는 세 단어 try, hello, world로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 TrY, HeLlO, WoRlD입니다. 따라서 TrY HeLlO WoRlD 를 리턴합니다.

 

 

코딩테스트 연습 - 이상한 문자 만들기

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을

programmers.co.kr

풀이 및 코드

문제 요약

각 단어의 짝수번째는 대문자로, 홀수번째는 소문자로 바꾸기

 

문제 해설

이 문제도 문자열을 읽으면서 위치가 짝수번째인지 아닌지를 확인하여 문자열을 만들어주면 되는 문제와 방법은 크게 다르지 않지만 인덱스 즉 위치를 나타내는 수가 각 단어마다 주어지는 조건이 있습니다. 그러므로 지금까지 해왔던 방식보다는 조금 더 생각 해야 합니다.

문자열

t

r

y

 

h

e

l

l

o

 

w

o

r

l

d

전체 인덱스

0

1

2

3

4

5

6

7

8

9

10

11

12

13

14

단어 인덱스

0

1

2

3

0

1

2

3

4

5

0

1

2

3

4

 

위의 표와 같이 우리는 단어 인덱스를 사용해야 한다.

위의 규칙을 살펴보면 단어가 바뀌면 단어 인덱스가 다시 시작하는 것을 볼 수 있다.

단어다 바뀔때. 즉 공백을 만나면 인덱스가 다시 시작하면 되는 것이다.

 

위의 알고리즘을 코드로 나타내면

# 일반 인덱스
s="try hello world"
i=0
for c in s:
	print(i)
	i+=1
    

# 단어 인덱스
s="try hello world"
i=0
for c in s:
	print(i)
    
	if c==" ":
		i=0
	else:
		i+=1   

 

이제 위치 즉 i값의 짝수,홀수 여부에따라 바꿔 주기만 하면 됩니다.

s="try hello world"
i=0
for c in s:
	if i%2==0:
		print(c.upper())
	else:
		print(c.lower())
    
	if c==" ":
		i=0
	else:
		i+=1

이제 출력 되는값을 변수에 담아 리턴해주는 함수를 만들면 되겠죠.

 

결과코드 

def solution(s):
	answer = ''
	i=0
	for c in s:
		if i%2==0:
			answer+=c.upper()
		else:
			answer+=c.lower()
		
		if c==" ":
			i=0
		else:
			i+=1
	return answer

 

제출 성공

오늘은 일반적인 반복에서 인덱스를 조금 다르게 부여하는 문제를 풀어 보았습니다. 조금 수정은 되었지만, 기본 방법은 같기 때문에 앞에서 부터 차근차근 진행하신 분들은 어렵지 않게 풀었을 것으로 보입니다.

수고 하셨습니다.감사합니다.

Comments