내가 문제를 풀려고 생각한 알고리즘은 다음과 같다.
문제에서 요구한 조건에 따라
정수 사이 공백으로 구분하여 리스트에 값을 저장해야 하므로
split 함수
와 map 함수
를 이용하여 작성했다.
n = int(input('정수 개수 입력: ')) number = list(map(int, input().split())) count = number.count(int(input('찾으려는 정수 입력: '))) print('찾으려는 정수의 개수는 %d개입니다.' % count)
생각한 알고리즘은 다음과 같다.
n = list(map(int, input().split())) num = list(map(int, input().split())) for i in num: if i < n[1]: print(i, end=' ') print()
출력 값이 줄바꿈이 아닌 공백을 간격으로 출력하고 싶으면 다음처럼 작성하자!
print(, end=' ')
문제를 풀기 위해 생각한 알고리즘은 다음과 같다.
n = int(input()) num = list(map(int, input().split())) print(min(num), end=' ') print(max(num))
그동안 입력(input) 개념을 완전히 이해하지 못해서
정수를 리스트에 입력, 띄어쓰기로 구분하여 여러 개 숫자 입력,
엔터로 구분하여 여러 개의 문자 입력을 자주 헷갈렸지만 오늘 완전히 잡고 간다.
s = list(map(int, input().split()))
다음처럼 map 함수와 split 함수를 이용하여 입력할 수 있다.
map함수를 이해하기에 앞서서 객체
개념부터 알고 가자.
붕어빵을 예로 들어보면,
붕어빵 틀은 똑같은 붕어빵을 계속해서 만들어 낼 수 있는 클래스(class)
이고,
붕어빵은 클래스로 만든 피조물 객체(object)
를 뜻한다.
붕어빵 틀로 만들어 낸 붕어빵 중,
어떤 붕어빵은 약간 탔고, 어떤 붕어빵은 꺼내다 찢어졌다고 해보자.
탄 붕어빵과 찢어진 붕어빵은 다른 붕어빵에 영향을 주진 않는다.
즉, 동일한 클래스로 만든 객체들은 서로 전혀 영향을 주지 않는다.
클래스로 만든 객체를 인스턴스
라고도 하는데,
a = Cookie() 이렇게 만든 a는 객체이고, a 객체는 Cookie의 인스턴스이다.
인스턴스라는 말은 특정 객체가 어떤 클래스의 객체인지 설명할 때 사용한다.
이제 map함수를 알아보면,
map(function, iterable)
함수와 반복 가능한(iterable) 자료형을 입력으로 받고,
입력 받은 자료형의 각 요소를 함수가 수행한 결과를 묶어서 돌려주는 함수이다.
map 함수를 이용하면
# 리스트에 값을 곱해서 새로운 리스트를 만드는 작업 lst = [1, 2, 3, 4, 5] # for 반복문 이용 res1 = [] for i in lst: res1.append(i * 2) print(f'res1 : {res1}') # map 함수 이용 def mul(n): return n * 2 res2 = list(map(mul, lst)) # map반환을 list로 변환 print(f'res2 : {res2}')
예시처럼 for 반복문을 이용하여 일일이 리스트 요소에 접근하고, append 해줘야 하는 번거로움을
map 함수는 요소에 적용할 함수만 넘겨준다면, 알아서 리스트에 함수를 적용해서
map 객체를 반환해준다. 그 map 객체를 list로 형 변환해서 사용하면 끝~
자주 사용하는 함수니까 꼭 연습하자.
for i in range(n): list.append(int(input()))
for문을 사용하여 iterable
객체가 바뀔때마다 append 함수로 입력하면 된다.