본문 바로가기

프로그래머스 코딩테스트 연습 Lv1

프로그래머스 코딩테스트 연습 - 모든문제 Lv1 [ 모의고사 ]

[문제]

- 수포자 3명의 모의고사 찍는 규칙이 있는데 정답 배열 answer과 가장 많이 일치하는 사람을 찾는 문제.

- 1번 수포자는 12345 12345 12345 이렇게 찍음

- 2번 수포자는 21 23 24 25 21 23 24 25 이렇게 찍음

- 3번 수포자는 3311224455 3311224455 이렇게 찍음

 

[제한조건]

- 최대 10,000 문제

- 가장 높은 점수를 받은 사람이 여러명이면 오름차순 정렬 하셈.

 

[입출역 예]

answer = [1,2,3,4,5]      return[1]

answer = [1,3,2,4,2]      return[1,2,3]

 

[내 풀이]

- 그냥 배열문제 아닌가..? answer 배열을 랜덤으로 만들어 놓고 각각 비교 해서 정답이면 cnt 변수를 하나씩 올리는 방식으로 반복문 구성 하기로 결정.

더 편하게 푸는 라이브러리가 있을거라 생각하고 다른사람 풀이 봅시다!

 

라이브러리 라기 보다는 배열을 반복하는 방법에 대해서 다른 방법이 있네요. enumrate

 

[enumrate]

파이썬 내장함수로 열거하다 라는 뜻. 순서가 있는 자료형을 입력받아 인덱스 값을 포함하는 enumrate 객체를 돌려줌.

1. a[index%len(a)] 이부분에 대해 학습했음.

내 풀이는 배열을 문제 풀이에 필요한 최대만큼 불려놓고 계산을 했는데, 여기서는 배열 a의 길이만큼 ( 순환하는 길이만큼) 반복문이 돌아가면서 나오는 숫자 index 로 나눠서 나머지를 리턴함. 그러면 계속해서 index 번째가 나오는거지. 이거 알고 있었는데 문제풀때 생각하기 귀찮다고 그냥 해버린거 반성...ㅠ

 

2. 정답맞춘 cnt 변수 세개를 배열로 만들어 버려가지고 max함수 쓴거 공부.

이건 max를 잘 몰라서 이건 제외 한다고 해도 Int 형 변수 3개를 하나의 배열로 묶는건 생각 해봤어야 한듯..!