Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 분산 시스템
- Tensor
- selenium
- Python
- 프로그래머스
- TF-IDF
- 웹크롤링
- 알고리즘
- 파이썬
- recommendation system
- coursera
- 코딩테스트
- 시각화
- Overfitting
- 머신러닝
- wordcloud
- 데이터 엔지니어링
- 웹스크래핑
- 딥러닝
- 데이터
- 추천시스템
- 추천 시스템
- pytorch
- 협업 필터링
- 코테
- 백준
- Cosine-similarity
- codingtest
- 부스트캠프
- SGD
Archives
- Today
- Total
개발자식
[프로그래머스] 모의고사 본문
문제 : https://programmers.co.kr/learn/courses/30/lessons/42840
코딩테스트 연습 - 모의고사
수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는
programmers.co.kr
나의 풀이
- answer 과 각 수포자의 방식 패턴 길이를 비교하여 따로 처리하는 방식
- answer 길이가 짧다면 부족한 만큼 인덱싱 후 더해주기
- 수포자의 방식 패턴 길이가 짧다면 부족한 만큼 리스트 만들어서 진행
def solution(answers):
answer = []
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]
p = [p1,p2,p3]
check ={}
for i in range(len(p)):
count = 0
if len(answers) <= len(p[i]):
for a, j in zip(answers, p[i]):
if a==j:
count+=1
check[i+1] = count
else:
mul = len(answers) // len(p[i])
add = len(answers) % len(p[i])
for a, j in zip(p[i]*mul+p[i][:add], answers):
if a==j:
count+=1
check[i+1] = count
answer=[k for k,v in check.items() if max(check.values()) == v]
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 result
리스트로 문제를 풀 때 인덱싱을 한번 더 생각해보자
'Algorithm > Programmers' 카테고리의 다른 글
[프로그래머스] 최소직사각형 (0) | 2022.08.18 |
---|---|
[프로그래머스] 가장 먼 노드 (0) | 2022.07.01 |
[프로그래머스] 가장 큰 수 (0) | 2022.07.01 |
[프로그래머스] 전화번호 목록 (0) | 2022.06.30 |
[프로그래머스] 타겟 넘버 (0) | 2022.06.30 |
Comments