CS log

[Python] split(), bool() 및 백준 1152 다른 풀이방법 본문

CS/Algorithm

[Python] split(), bool() 및 백준 1152 다른 풀이방법

sj.cath 2024. 3. 28. 14:00
words = input()
only_words = words.split(' ')
sum =0
for i in only_words :
    if bool(i) :
        sum+=1
print(sum)

 

split() : 어디서 문자열을 끊을 지 알려주는 것인데, 괄호안에 아무 것도 없으면 공백 단위로 나눈다.

단어를 공백으로 끊어서 여러 개 입력했을때 리스트에 그 단어들이 하나씩 그대로 들어감

그리고 리스트의 길이를 출력하면 단어의 개수가 출력됨 

 

bool() : 참, 즉 단어가 있으면 (blank가 아니면)

 

 

 

더 간단한 풀이

x = list(map(str,input().split()))
print(len(x))

 

map() 사용법

a = [1.2, 2.5, 3.7, 4.6]
>>> for i in range(len(a)):
...     a[i] = int(a[i])
...
>>> a
[1, 2, 3, 4]

for range(len(a))를 사용해서 인덱스를 가져왔습니다. 그리고 가져온 인덱스로 요소 하나 하나에 접근한 뒤 int로 변환하여 다시 저장했다. 매번 for 반복문으로 반복하면서 요소를 변환하려니 조금 번거롭다. 이때는 map을 사용하면 편리하다.

>>> a = [1.2, 2.5, 3.7, 4.6]
>>> a = list(map(int, a))
>>> a
[1, 2, 3, 4]

 

 

다른 풀이

words = input()
only_words = words.split(' ')
only_words.remove('')
print(len(only_words))

 

remove() 함수도 사용해보았다.

'CS > Algorithm' 카테고리의 다른 글

[백준/python] 4779번 : 칸토어 집합  (0) 2024.08.09
재귀 recursive function  (0) 2024.08.09
[백준/python] 1018 체스판 다시 칠하기  (0) 2024.08.04
Big O 복습  (0) 2024.04.08
[Python] 문자 ↔ 아스키코드 변환  (0) 2024.03.27