[백준]3003번 킹, 퀸, 룩, 비숍, 나이트, 폰
카테고리: Baekjoon
킹, 퀸, 룩, 비숍, 나이트, 폰
풀이
TrueNumber = [1, 1, 2, 2, 2, 8]
MyNumber = list(map(int, input().split()))
for i in range(TrueNumber):
print(A[i] - B[i], end = ' ')
map 함수
map(function, iterable)
1) map함수의 변수는 두 가지이다. 첫 번째는 function을, 두 번째 변수는 반복 가능한 자료형(List, Tuple 등)이 할당된다.
2) map 함수의 return값은 map객체 이므로 해당 자료형을 List나 Tuple로 형 변환시켜주어야 한다.
3) 함수의 동작은 두 번째 인자로 들어온 반복 가능한 자료형을 함수에 하나씩 대입해서 함수를 실행하는 함수인 것이다.
4) map(적용시킬 함수, 적용할 값들)
Ex1) map함수를 사용하는 것과 아닌것의 차이
# 리스트에 값을 하나씩 더해서 새로운 리스트를 만드는 작업
myList = [1, 2, 3, 4, 5]
# for 반복문 이용
Result1 = []
for val in myList:
result1.append(val + 1)
print(Result1)
print(f'Result1 : {Result1}')
# map 함수 이용
def add_one(n):
return n + 1
Result2 = list(map(add_one, myList)) # map반환을 list 로 변환
print(Result2)
print(f'result2 : {Result2}')
##출력
[2,3,4,5,6]
Result1 : [2,3,4,5,6]
[2,3,4,5,6]
Result2 : [2,3,4,5,6]
Ex2) 리스트와 map함수
import math # ceil함수 사용하려고 호출
## 예제1) 리스트의 값을 정수 타입으로 변환
Res1 = list(map(int, [1.1,2.2,3.3,4.4,5.5]))
print(Res1)
print(f'Res1 : {Res1}')
## 예제2) 리스트의 값을 제곱
def func_power(x):
return x**2
Res2 = list(map(func_power, [1,2,3,4,5]))
print(Res2)
print(f'Res2 : {Res2}')
## 리스트의 값 소수점 올림
Res3 = list(map(math.ceil, [1.1,2.2,3.3,4.7,5.6]))
print(Res3)
print(f'Res3 : {Res3}')
## 출력
[1, 2, 3, 4, 5]
Res1 : [1, 2, 3, 4, 5]
[1, 4, 9, 16, 25]
Res2 : [1, 4, 9, 16, 25]
[2, 3, 4, 5, 6]
Res3 : [2, 3, 4, 5, 6]
Ex3) 람다함수를 이용
# map과 lambda
# 일반적인 함수 이용
def func_power2(x):
return x**2
Res1 = list(map(func_power2, [5,4,3,2,1]))
print(Res1)
print(f'Res1 : {Res1}')
# 람다 함수
Res2 = list(map(lambda x: x**2, [5,4,3,2,1]))
print(Res2)
print(f'Res2 : {Res2}')
##출력
[25, 16, 9, 4, 1]
Res1 : [25, 16, 9, 4, 1]
[25, 16, 9, 4, 1]
Res2 : [25, 16, 9, 4, 1]
end = ‘ ‘의 의미
에제 출력에서 보면 0 1 2 2 2 7 처럼 숫자별로 한칸씩 띄어써져 있는 것을 알 수 있다. for문을 통해 iterable하게 출력값을 나타내게 되는데, i 번째 요소의 뺼셈 연산 후 공백을 주어 마치 띄어쓰기를 한 효과를 보는 것이다.
댓글 남기기