jm_p_op
모의고사 해설 본문
https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=python3
1.
import functools
#수포자 찍는 함수
def std(copys,problem_n):
std=[]
while len(std)<problem_n:
std=std+copys
std=std[0:problem_n]
return std
def solution(answers):
#dataset
answer_len=len(answers)
std_1=std([1,2,3,4,5],answer_len)
std_2=std([2,1,2,3,2,4,2,5],answer_len)
std_3=std([3,3,1,1,2,2,4,4,5,5],answer_len)
#맞은갯수 찾기 with reduce (요소별로 계산)
cor=functools.reduce(lambda a,b : [a[0]+(b[0]==b[1]),a[1]+(b[0]==b[2]),a[2]+(b[0]==b[3])],
list((zip(answers,std_1,std_2,std_3))),[0,0,0])
cor=[0]+cor
#최대값 요소 찾기
result=list(filter(lambda x: cor[x] == max(cor), range(len(cor))))
return result
2. 함수뽑기
def std(copys,problem_n):
std=[]
while len(std)<problem_n:
std=std+copys
std=std[0:problem_n]
return std
- copy:복제되는 부분
- problem_n: 최대 문제
std=std+copys=> {0,1}={0,1,2,3}+{2,3}
2.list(zip(a,b,c))
a={1,1,1}
b={2,2,2}
c={3,3,3}
list(zip(a,b,c))={ {1,2,3},
{1,2,3},
{1,2,3}}
3.array(배열) 요소 계산
.reduce
- x는 보고자 하는 array
- f(a,b) 계산방법
- x는
- a는 초기, x(b)값을 f(a,b)에서 계산한다.
- f(0)는 초기값
import functools
functools.reduce(lambda a,b : f(a,b),x,f(0))
filter 요소중 일치하는것 찾기
- x는 array
- a는 x[a]
- f(a)는 조건문 (0,1) (false,true)
list(filter(lambda a : f(a) ,x))
정수배열만들기
range(a,b)=[a,a+1,...,b]
array길이
len({1,2,3})
(단 len(x)를 int로 쓸려면 int(len(x))+y)
'수학 > 알고리즘' 카테고리의 다른 글
모의고사 해설 4. 둘만의 암호 (0) | 2023.04.20 |
---|---|
모의고사 해설 3. 방의갯수 (0) | 2023.04.18 |
.py 알고리즘 모의고사 코딩리뷰 + 수정 (0) | 2023.04.05 |
모의고사 해설 3. array (0) | 2023.04.03 |
모의고사 해설2 (0) | 2023.03.25 |