본문 바로가기

TIL 통합/Python

SPLIT(), JOIN(), ITERTOOLS패키지, COMBINATIONS()

카타

 

41. 이상한 문자 만들기 : SPLIT(), JOIN()

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

 

 

정답 및 문제 풀이

def solution(s):
    answer = []
    worlds = s.split(' ')       #s를 뛰어쓰기로 분리
    for a in worlds:            #뛰어스기된 각 단어를 a에 할당
        tmp = ''
        for i, l in enumerate(a):      #각 단어의 0번째 및 짝수번째 글자를 대문자, 홀수번째 글자를 소문자로 변환
            if i == 0 or i%2 == 0:
                tmp += l.upper()
            else:
                tmp += l.lower()
        answer.append(tmp)             #변환한 단어들을 answer에 붙여서 합치기
    return " ".join(answer)

 

 

join() 매서드

주어진 리스트나 반복 가능한 객체의 각 요소를 하나의 문자열로 연결하는데 사용

ex)위의 정답에서 마지막 부분이 'return answer'일 경우 결과

['TrY', 'HeLlO', 'WoRlD']

 

*Chat gpt 예문

my_list = ["Hello", "World", "Python"]
result = " ".join(my_list)
print(result)


#결과 : "Hello World Python"

 

42. 삼총사 : ITERTOOLS 패키지, COMBINATIONS 함수

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

정답 풀이

from itertools import combinations
def solution(number):
    return list(map(sum,list(combinations(number,3)))).count(0)
    
#combinations(number, 3) : 리스트(number)에서 3개의 요소를 선택한 모든 조합을 생성
#map(sum , list~) : 3개의 요소로 이루어진 각 리스트들을 각 리스트 요소들의 합으로 변환
#count(0) : 최종 리스트 내에서 0의 수를 카운트

 

combinations(iterable, r) 함수:

  • 반복 가능한 객체(iterable)에서 길이 r인 가능한 모든 조합을 반환하는 함수.
  • iterable : 리스트 등 반복 가능한 객체
  • 결과는 튜플 형태이므로, 리스트로 반환해주어야 함!!

ex)

from itertools import combinations
ab = [1, 2, 3]
print(combinations(ab, 2))
#결과 : <itertools.combinations object at 0x7d4653231350>

print(list(combinations(ab,2)))
#결과 : [(1, 2), (1, 3), (2, 3)]

 

map(function, iterable) 함수:

함수(function)을 반복 가능한 객체(iterable)의 각 요소에 적용하여 결과를 반환하는 함수