▷ 코드카타

[내일배움캠프 _ QA/QC 5기] 31일차 _ 코드카타 41~42문항 _ 삼총사 문제

qc-standard 2026. 4. 20. 11:25

⊙ 코드카타

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

제한 조건

: 문자열 전체의 짝/홀수 인덱스가 아니라, 단어별로 짝/홀수로 인덱스를 판단해야 한다
: 첫 번재 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 한다

생각 과정 :


#41

def solution(s):
    # 1
    words = s.split(' ')
    answer = []
   
    # 2
    for word in words:
        converted_word = ""
        # 3
        for i, char in enumerate(word):
            if i % 2 == 0:
                # 4
                converted_word += char.upper()
            else:
                # 5
                converted_word += char.lower()
       
        # 6
        answer.append(converted_word)
       
    # 7
    return ' '.join(answer)

result = solution("try hello")
print(result)
result = solution("world")
print(result)
#41

# 1 단어들을 공백 기준으로 쪼개서 리스트에 담는 함수
# 오직 문자열에서 사용하는 함수 

# 2 쪼개진 단어들을 하나씩 꺼낸다

# 3 단어의 글자(char)와 순서(i)를 같이 꺼냅니다.

# 4 짝수번째면 대문자로!

# 5 홀수번째면 소문자로!

# 6 변신 완료된 단어를 바구니에 담아요.

# 7 단어들 사이에 다시 공백을 넣어 합칩니다.
 

 

 

 

42) 문제 : 한국 중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어 5명의 학생이 있고 각각의 정수 번호가 순서대로 -2,3,0,2,-5일 때, 첫 번째, 세 번재, 네번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째,네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두가지 방법으로 삼총사를 만들 수 있습니다. 한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return하도록 solution함수를 완성하세요

생각 과정 :

#42
defsolution(number):
    answer = 0
    n = len(number)

# 1
for i inrange(n):
# 2
for j inrange(i + 1, n):
# 3
for k inrange(j + 1, n):
# 4
if number[i] + number[j] + number[k] == 0:
                    answer += 1

return answer


result = solution([-2, 3, 0, 2, -5])
print(result)
result = solution([-3, -2, -1, 0, 1, 2, 3])
print(result)
result = solution([-1,1,-1,1])
print(result)
#42

# 1. 첫 번째 학생 (0번부터 시작)

# 2. 두 번째 학생 (첫 번째 학생 다음부터)

# 3. 세 번째 학생 (두 번째 학생 다음부터)

# 세 명의 번호를 더해서 0이 되는지 확인!
 
 
○ len(number): 만약 학생이 5명([-2, 3, 0, 2, -5])이라면, len은 숫자 5를 돌려줍니다.
range(5): range에 숫자 하나만 쓰면 자동으로 0부터 (그 숫자-1)까지의 범위를 만듭니다. 번호표 뭉치가 생기는 거죠.
○ range(len(number)) = range(0, 5, 1)의 간편 버전
○ range(i+1, n) : 첫 번재 학생(i) ~ n 직전까지