jm_p_op

모의고사 해설 본문

수학/알고리즘

모의고사 해설

jm_p_op 2023. 3. 20. 22:20

https://school.programmers.co.kr/learn/courses/30/lessons/42840?language=python3 

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

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