[코딩테스트] 모의고사
프로그래머스 코딩 테스트 준비
https://programmers.co.kr/learn/courses/30/lessons/42840
문제 설명은 다음 사이트에서 확인 할 수 있다.
< 내가 작성한 코드 >
def solution2(answers) :
p1 = [1,2,3,4,5]
p2 = [2,1,2,3,2,4,2,5]
p3 = [3,3,1,1,2,2,4,4,5,5]
answer = []
c1 = 0
c2 = 0
c3 = 0
for i in range(len(answers)) :
j = i
if i >= len(p1) :
j = i % len(p1)
if answers[i] == p1[j] :
c1 += 1
for i in range(len(answers)) :
j = i
if i >= len(p2) :
j = i % len(p2)
if answers[i] == p2[j] :
c2 += 1
for i in range(len(answers)) :
j = i
if i >= len(p3) :
j = i % len(p3)
if answers[i] == p3[j] :
c3 += 1
print(c1,c2,c3)
if c1 >= c2 and c1 >= c3 :
answer.append(1)
if c2 >= c1 and c2 >= c3 :
answer.append(2)
if c3 >= c1 and c3 >= c2 :
answer.append(3)
return answer
< 다른사람이 풀이한 코드 >
def solution(answers):
pattern1 = [1,2,3,4,5]
pattern2 = [2,1,2,3,2,4,2,5]
pattern3 = [3,3,1,1,2,2,4,4,5,5]
score = [0, 0, 0]
result = []
for idx, answer in enumerate(answers):
if answer == pattern1[idx%len(pattern1)]:
score[0] += 1
if answer == pattern2[idx%len(pattern2)]:
score[1] += 1
if answer == pattern3[idx%len(pattern3)]:
score[2] += 1
for idx, s in enumerate(score):
if s == max(score):
result.append(idx+1)
return resultdef solution(answers):
pattern1 = [1,2,3,4,5]
pattern2 = [2,1,2,3,2,4,2,5]
pattern3 = [3,3,1,1,2,2,4,4,5,5]
score = [0, 0, 0]
result = []
for idx, answer in enumerate(answers):
if answer == pattern1[idx%len(pattern1)]:
score[0] += 1
if answer == pattern2[idx%len(pattern2)]:
score[1] += 1
if answer == pattern3[idx%len(pattern3)]:
score[2] += 1
for idx, s in enumerate(score):
if s == max(score):
result.append(idx+1)
return result
🧑🏻 후기
0 % x = 0이 나오는게 아니라 오류 나는 줄 알았다. 0 % x = 0 ! 기억하자
enumerate 함수를 다양하게 활용 할 수 있다는 것을 알았다.
Author And Source
이 문제에 관하여([코딩테스트] 모의고사), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sdj3261/코딩테스트-모의고사저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)