본문 바로가기

개발자 TIL

프로그래머스 문제풀이.

https://school.programmers.co.kr/learn/courses/30/lessons/86491

 

프로그래머스

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

programmers.co.kr

 

완전 탐색이라는 주제를 가지고 나온 문제 유형들이다

1.

최소직사각형

 

def solution(a):
    max_x=[]
    max_y=[]     
    for i in range(len(a)):
        a[i].sort()
        max_x.append(a[i][0])
        max_y.append(a[i][1])
        answer=(max(max_x)*max(max_y))
    return answer

가로 세로 바꿔서 넣을 수 있는 문제 조건을 보고

[x,y]

sort()를 이용한 내림차순으로 정렬 하였다.

이후 a[0,1] 0번쨰 index중 가장큰값과 1번쨰index의 가장큰값을 곱해주었다.

 

2.

모의고사.

def solution(answers):
    counts =[0,0,0]
    win=[]
    s1=[1,2,3,4,5]
    s2=[2, 1, 2, 3, 2, 4, 2, 5]
    s3=[ 3, 3, 1, 1, 2, 2, 4, 4, 5, 5]
    
    for i in range(len(answers)):
        if answers[i] ==s1[(i % 5)]:
            counts[0] += 1
        if answers[i] ==s2[(i % 8)]:
            counts[1] += 1
        if answers[i] ==s3[(i % 10)]:
            counts[2] += 1
            
    for i in range(3):
        if counts[i] == max(counts):
            win.append(i+1)
    return win

 

1번쨰 학생의패턴은 5번마다

2번쨰 학생은 8번마다

3번째 학생은 10번마다 반복하기떄문에

i % n으로 정답과 같다면 counts에 하나씩 추가했고

counts[]에서 가장 많은 정답을 맞춘 학생을 win에 리턴시켜주었다.

 

'개발자 TIL' 카테고리의 다른 글

conda 에러  (0) 2023.01.26
회귀 분석이란.?  (0) 2023.01.26
payhere 과제전형 마치며.  (0) 2023.01.06
payhere 과제  (0) 2023.01.04
이력서 합격?!  (2) 2023.01.03