알고리즘/프로그래머스
[2021 Dev-Matching: 웹 백엔드 개발자(상반기)] 로또의 최고 순위와 최저 순위
래울
2021. 8. 14. 15:02
https://programmers.co.kr/learn/courses/30/lessons/77484#
코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호
programmers.co.kr
매우쉽다.
// 로또 : 1~45숫자 중 6개를 찍어 맞춤(순서 상관 x)
// 일치한 번호에 따라 1~5순위 까지(6개일치 ~ 2개일치)
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
// lottos_len은 배열 lottos의 길이입니다.
// win_nums_len은 배열 win_nums의 길이입니다.
int* solution(int lottos[], size_t lottos_len, int win_nums[], size_t win_nums_len) {
// return 값은 malloc 등 동적 할당을 사용해주세요. 할당 길이는 상황에 맞게 변경해주세요.
int* answer = (int*)malloc(2); // (최저, 최고 순위)8bite만큼 할당
answer[0]=7;
answer[1]=7;
for(int i=0; i<lottos_len; i++){
for(int j=0; j<lottos_len; j++){
if(lottos[i] == 0){
answer[0]--;
break;
}
else if(lottos[i] == win_nums[j]){
answer[1]--;
answer[0]--;
break;
}
}
}
if(answer[1]==7)
answer[1]=6;
if(answer[0]==7)
answer[0]=6;
return answer;
}
7에서 번호 하나 맞을 때 마다, 1씩 빼주고
하나도 맞지 않았을 경우(7일 경우), 6을 넣어준다.