2024. 4. 2. 20:39ㆍ내일배움캠프
4월 2일
오늘은 로또 1등이 당첨되는 마음을 빌어
로또의 최고 순위와 최저 순위라는 알고리즘 문제를 풀어보았다.
로또의 최고 순위와 최저 순위
![](https://blog.kakaocdn.net/dn/SNBKO/btsGhpMZ2kz/mvh72zSsfLpPMf6oAl6nx1/img.png)
로또의 순위를 정하는 방식을 먼저 설명해주고 있다.
![](https://blog.kakaocdn.net/dn/bovmac/btsGkR1Aj6P/SHRckliAOBhRTKBILNOVNK/img.png)
민우 동생만 아니었으면 문제를 풀 필요도 없었을텐데 정말 아쉽다.
낙서때문에 알아보지 못하는 로또 번호는 0번으로 표기되어 lottos배열에 들어오고
로또 정답은 win_nums 배열에 들어온다고한다.
사실 말은 엄청 길게하는데 우리가 구해야하는건 최고순위와 최저순위이다.
최저순위는 말 그대로 알아볼 수 있는 수중에서 로또 정답과 같은것
그리고 최고 순위는 최저순위 + 낙서를 해서 알아보지 못하는 로또번호의 개수가 될것이다.
알고리즘을 풀기전에 이번에는 Sloution 클래스에 로또 등수를 알려줄 메서드 하나를 먼저 추가해보자
![](https://blog.kakaocdn.net/dn/baxlpK/btsGkC4uDeA/sbk1YMedzQsKOT77EjNX91/img.png)
어떤 수가 들어오면 그 수를 가지고 switch문을 돌아 등수를 반환해주는 메서드 하나를 만들고 시작했다.
![](https://blog.kakaocdn.net/dn/4osAo/btsGj0LxTYu/foOCKb37A2RBNU6PyMCF7K/img.png)
이 상태로 시작하자
![](https://blog.kakaocdn.net/dn/bwyphR/btsGifpCwQj/34nBnl1rhXJ4YVm6gaRhT1/img.png)
본격적으로 반복문을 돌면서 민우가 찍은 번호가 당첨번호인지 알아보기 전에
민우가 찍은 번호가 당첨번호라면 1씩 증가시켜줄 temp와
동생이 낙서를 해서 알아보지 못하는 번호라면 1씩 증가시켜줄 zero를 만들어주자
![](https://blog.kakaocdn.net/dn/RJi6F/btsGkoZIERy/d47vlbSwSKOskXPUCNkEMK/img.png)
그 다음으로는 본격적으로 반복문을 만들어주자
lottos의 길이만큼 반복이 되고 반복문이 돌때마다 lottos[i]가 0이라면 zero를 올려주고
0이 아니라면? win_nums 안에 lottos[i]의 값과 같은 값이 있다면? temp를 올려주도록 하자
Contains는 win_nums의 배열 안에 같은 값이 하나이상 들어있다면 true를 반환해주고 아니면 false를 반환해주는 녀석인데
여기서 win_nums안에 같은 값이 두개 이상이 들어간다면 이런식으로 조건을 작성하면 안된다
하지만
![](https://blog.kakaocdn.net/dn/blL3Bb/btsGir4tx4A/BllixhySY7tVWNETN4HqPk/img.png)
제한사항을 보면 win_nums에는 같은 숫자가 2개 이상 담겨있지 않는다고 하니 편하게 Contains를 써가지고
비교하도록 하자!
![](https://blog.kakaocdn.net/dn/bnbWbe/btsGixXRGD0/TFdnVnrcO3qVKuMtODwWgK/img.png)
문제를 시작하기 전에 만들어둔 등수반환 메서드가 여기서 사용된다
answer[0]에는 내가 당첨될 수 있는 최고 등수
answer[1]에는 내가 당첨될 수 있는 최저 등수를 반환해줘야하는데
최고등수는 내가 맞춘 정답 temp + 동생이 낙서해서 알아보지는 못하지만 정답일 가능성이 있는 zero를 더해주고
최저 등수는 내가 맞춘 정답 temp만 넣어주면 된다.
![](https://blog.kakaocdn.net/dn/dhjrdZ/btsGksAYK9b/BqxXFA1y3WoOMVkwZkXY9K/img.png)
텅과!
어제는 진짜 어려웠는데
오늘은 생각보다 너무 쉬웠다. 로또 당첨이라고 하니깐 눈이 돌아가서 그런가?
4월 2일 TIL은 여기서 마치도록 하겠다.
'내일배움캠프' 카테고리의 다른 글
240404-TIL (0) | 2024.04.04 |
---|---|
240403-TIL (0) | 2024.04.03 |
240401-TIL (0) | 2024.04.01 |
240329-TIL (0) | 2024.03.29 |
240328-TIL (0) | 2024.03.28 |