본문 바로가기
*Algorithm/Programmers_Level1

[programmers] 프로그래머스 Level1 모의고사(파이썬 Python)

by codinguser 2020. 11. 20.

프로그래머스
(주)그렙

 

[programmers] 프로그래머스 Level1 모의고사

(파이썬 Python)

 

* 문제출처 : 프로그래머스 코딩 테스트 연습, 알고리즘 문제

 

 

 

1) 문제


프로그래머스 모의고사

 

코딩테스트 연습 - 모의고사

수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는

programmers.co.kr

 

 

 

 

 

2) 풀이 과정


 

1. 각 수포자 패턴을 리스트로 정리

 

2. answers에 있는 각 element 값과 수포자의 element값을 확인

 

3. 맞아 떨어질 때마다 1씩 카운팅

 

4. 각 개수의 합이 큰 요소를 위해 최댓값 구하기

 

5. 가장 높은 점수를 받은 사람이 여럿일 경우, return 값 오름차순 정렬

ㄴ1) first_answer 가 가장 높은 점수이면 - > 1

 

ㄴ2) second_answer가 가장 높은 점수이면 - > 2

 

ㄴ3) third_answer가 가장 높은 점수이면 - > 3

 

따로 sort()할 필요 없이, 순서대로 append() 해주기

 

 

 

 

 

< < 사고 과정 > >


1. 묻는거 우선 확인

: 가장 많은 문제를 맞힌 사람이 누구인지?

 

2. 문제를 맞히려면?

: answers와 각 supoja_1,2,3 의 답이 일치해야 맞는 거겠지?

 

3. 가장 많이 맞힌 사람을 확인 => max()

ㄴ가장 많이 맞힌 사람이 1번이라면 = > 1

ㄴ가장 많이 맞힌 사람이 2번이라면 = > 2

ㄴ가장 많이 맞힌 사람이 3번이라면 = > 3

 

 

 

 

 

 

 

 

 

3) 코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
def solution(answers):
    
    supoja_1 = [1,2,3,4,5]
    supoja_2 = [2,1,2,3,2,4,2,5]
    supoja_3 = [3,3,1,1,2,2,4,4,5,5]
    
    first_answer = 0
    second_answer = 0
    third_answer = 0
    
    for i in range(0len(answers)):
        if(answers[i] == supoja_1[i % len(supoja_1)]):
            first_answer += 1
            
        if(answers[i] == supoja_2[i % len(supoja_2)]):
            second_answer += 1
            
        if(answers[i] == supoja_3[i % len(supoja_3)]):
            third_answer += 1
            
        max_answer = max(first_answer, second_answer, third_answer)
        
        '''
        if(first_answer >= second_answer) and (first_answer >= third_answer):
            max_answer = first_answer
        
        elif(second_answer >= third_answer) and (second_answer >= third_answer):
            max_answer = second_answer
            
        else:
            max_answer = third_answer
        '''
               
    answer = []
    if(max_answer == first_answer):
        answer.append(1)
        
    if(max_answer == second_answer):
        answer.append(2)
        
    if(max_answer == third_answer):
        answer.append(3)
    
    return answer
 
cs

 


max() 함수를 풀어서 심심풀이로 작성해봤다.

'''

'''

부분은 생략해도 된다.

 

 

 

 

 

 

4) 정리 노트


X

 

 

 

댓글