728x90
반응형
난이도 ⭐️⭐️
문제 설명
지혜는 로또 마니아다.
매주 로또 한 장을 사고 토요일이면 대박을 기대하면서 당첨번호를 확인한다.
지혜는 로또 결과가 4등이었는데 확인을 잘못해서 5등인 줄 알고 그냥 바꾸기 귀찮아서 버렸었다.
(사실은 다른 줄에 있는 것까지 합쳐서 3개 맞았는데 5등인 줄 알았다고 한다.)
이러한 사태가 다시는 일어나지 않게 하기 위해 우리가 프로그램을 만들어 주자.
로또 순위 매기는 방법)
등수 | 방법 |
1등 | 당첨번호 6개 일치 |
2등 | 당첨번호 5개 일치 + 보너스번호 일치 |
3등 | 5개 번호 일치 |
4등 | 4개 번호 일치 |
5등 | 3개 번호 일치 |
꽝 | 2개 이하 일치 |
예)
13 23 24 35 40 45 7 ===> 로또 당첨번호 + 보너스 번호
2 6 7 23 40 44 ====> 지혜가 가진 로또 번호
따라서 지혜는 "꽝"
입력
첫 줄에 로또 당첨번호 6개와 보너스 번호 1개가 주어진다.
둘째 줄에 지혜가 가지고 있는 로또 번호 6개가 주어진다.
출력
지혜의 당첨 결과를 출력한다.
출력방법)
1등 = 1 출력, 2등 = 2 출력, 3등 = 3 출력, 4등 = 4 출력, 5등 = 5 출력, 꽝 = 0 출력
[입력 예시]
13 23 24 35 40 45 7 2 6 7 23 40 44 |
[출력 예시]
0 |
문제 풀이
이 문제의 가장 핵심 요소는 바로 2등의 판단이다. 2등의 조건은 다른 등수와 다르게 '당첨번호 5개 일치 + 보너스번호 일치'라는 조건을 가지므로 다르게 프로그래밍을 해야 한다.
먼저 두 개의 번호를 입력받아야 하는데 이중 반복을 이용하고 두 번째 입력의 횟수를 제한을 둬 코드를 간략화했다.
for(int i=0;i<2;i++){ if(i==1) cnt = 6;
for(int j=0;j<cnt;j++) scanf("%d",&n[i][j]);};
지혜가 가지고 있는 로또 번호와 당첨 번호를 먼저 확인하고, 지혜가 당첨 숫자가 5개인 경우에는 보너스 숫자를 확인하여 2등을 판별한다.
for(int i=0;i<6;i++){
for(int j=0;j<6;j++){
if(n[0][i] == n[1][j]) cnt ++;
}
}
if(cnt == 5){
for(int j=0;j<6;j++){
if(n[0][6]==n[1][j]){key=1;break;}
}
}
이러한 작업이 끝났다면 switch 문으로 조건을 비교해 등수를 파악한다.
정답 코드
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(){
int a,b,c,d,cnt=7,key=0;
int n[2][7];
for(int i=0;i<2;i++){ if(i==1) cnt = 6;
for(int j=0;j<cnt;j++) scanf("%d",&n[i][j]);};
cnt = 0;
for(int i=0;i<6;i++){
for(int j=0;j<6;j++){
if(n[0][i] == n[1][j]) cnt ++;
}
}
if(cnt == 5){
for(int j=0;j<6;j++){
if(n[0][6]==n[1][j]){key=1;break;}
}
}
if(key==1) printf("2");
else {
switch (cnt)
{
case 3: printf("5");
break;
case 4: printf("4");
break;
case 5: printf("3");
break;
case 6: printf("1");
break;
default: printf("0");
break;
}
}
/**
13 23 24 35 40 45 7
24 13 7 23 40 23
*/
}
728x90
반응형
'Datastructure > [Code Up]' 카테고리의 다른 글
[Code Up] 1284번 : 암호 해독 (0) | 2023.11.02 |
---|---|
[Code Up] 1283번 : 주식 투자 (1) | 2023.11.02 |
[Code Up] 1282번 : 제곱수 만들기 (1) | 2023.11.02 |
[Code Up] 1205번 : 최댓값 (0) | 2023.11.02 |
[Code Up] 1165번 : 축구의 신 1 (1) | 2023.11.02 |