楽透の最高と最低ランキング
👟 ステージ
プログラマステップ1(完了)
💻 言語の使用
C
📄質問内容
敏宇が購入した宝くじの番号.
パラメータは、当選番号を含む配列win numsです.
このとき、当選可能な「最高順位」と「最低順位」を順番に並べます.
戻るためにresolution関数を完了してください.
問題条件
1)lottosは整数配列で,長さは6である.
2)lottosのすべての要素は0または45以下の整数である.
3)0は認識できない数字を表す.
4)0以外の数字はlottosで2つを超えない.
5)lottosの要素が整列していない可能性があります.
6)win numsは長さ6の整数配列である.
7)win numsのすべての要素は1または45未満の整数である.
8)win numsには2つ以上の同じ数字は含まれていません.
9)win numsの要素が整列していない可能性があります.
I/O例)
lottoswin_numsresult[44, 1, 0, 0, 31, 25][31, 10, 45, 1, 6, 19][3, 5][0, 0, 0, 0, 0, 0][38, 19, 20, 40, 15, 25][1, 6][45, 4, 35, 20, 3, 9][20, 9, 3, 45, 4, 35][1, 1]
コードの作成
#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 count1 = 0;
int count2 = 0;
for(int i = 0; i < lottos_len; i++){
if(lottos[i] == 0) count1 ++;
for(int j = 0; j < lottos_len; j++){
if(lottos[i] == win_nums[j]) {
count1 ++;
count2 ++;
}
}
}
if(count1 == 0) count1 = 1;
if(count2 == 0) count2 = 1;
int* answer = (int*)malloc(1);
answer[0] = 7 - count1;
answer[1] = 7 - count2;
return answer;
}
🔔解決方法と私の方法
👉<チェック条件>
条件として、楽透数字には読めない数字だけが「0」と表記されているそうです.
「順番に関係なく番号が一致していれば」というのであれば正解を認めます
0に入る数字をよく考えれば、解けやすい.
🔑<メソッドとプール>
順位がどうであれ、最高順位と最低順位を求めれば良いので、2つのケースに考えれば良いと思います.
<ランキングが一番高い場合>
任意の数字0はwin numsに含まれます.
<最下位レベル>
任意の数字0はwin numsから除外されます.
今残っているものは簡単です.宝くじ番号が正しい場合、ランキングは個数に依存するため、countという変数を設定して個数を計算します.ただし、2つのケースの数があるため、「count 1」と「2」に設定します.
2つのfor文を用いてlottos配列とwin nums配列を1つずつチェックする.この2つの値が同じである場合、count 1,2は+1に設定されます.
あ、?では、上にcountを追加した理由は何ですか?
最高順位は,楽透を判定する変数0値がwin numsに含まれているためcount 1に+1を加える.
楽透の順位は全部で1位~6位なので、「7-count 1,2」なら最終順位が出ます.
それらの値をanwerに置くと終わります.
🚫一つの注意事項🚫
lottsの配列とwin numsの配列が少しも一致しない場合、count値は1つずつ割り当てて6位になります!
👨🏻💻 鼻輪を解く感覚
思ったより解決しやすく、最後の注意事項のようです.
少しも合わない時の状況を考えてみましょう.
歌い間違えなかったので残念
Reference
この問題について(楽透の最高と最低ランキング), 我々は、より多くの情報をここで見つけました https://velog.io/@qjawls26/로또의-최고-순위와-최저-순위テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol