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() 함수도 사용해보았다.