https://programmers.co.kr/learn/courses/30/lessons/77484
코딩테스트 연습 - 로또의 최고 순위와 최저 순위
로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호
programmers.co.kr
지난번에 풀었던 신고결과받기 문제가 레벨1 치고 신경쓸게 많아서 걱정했는데,
이번 문제는 정말 간단한 난이도였습니다.
라이브러리나 자료구조(배열을 제외한)의 활용 없이 반복문과 조건문 정도만 사용해도 풀이가 가능했습니다.
내 로또에서 맞춘 번호의 갯수를 c (Correct Number) 맞출 가능성이 있는 번호의 갯수를 p (Potential Number)로 따로 카운팅하고 번호 갯수에 따라 미리 등수 배열을 만들어 놓은 뒤 넣어주는 식으로 구현했습니다.
만약 로또용지의 번호 갯수가 달랐다면 내가 이미 맞춰서 소비된 번호를 고려한다던지 예외적인 상황이 발생했을것 같지만 문제의 조건에선 별다른 특이사항이 보이지 않아서 쉽게 구현했습니다.
import java.util.Arrays;
public class q77484_Programmers_로또의최고순위와최저순위 {
static int[] lottos = { 44, 1, 0, 0, 31, 25 };
static int[] win_nums = { 31, 10, 45, 1, 6, 19 };
public static void main(String[] args) {
int[] answer = { 0, 0 };
int[] grade = { 6, 6, 5, 4, 3, 2, 1 };
int p = 0;
// potential Num
int c = 0;
// correct Num
for (int i = 0; i < 6; i++) {
if (lottos[i] == 0) {
p++;
} else {
for (int j = 0; j < 6; j++) {
if (lottos[i] == win_nums[j]) {
c++;
break;
}
}
}
}
answer[0] = grade[p+c];
answer[1] = grade[c];
System.out.println(Arrays.toString(answer));
}
}
'🔍 알고리즘 > 프로그래머스 Java' 카테고리의 다른 글
[Java] 백준 23559번. 밥 (실버1) (0) | 2022.06.29 |
---|---|
[Java] 프로그래머스 64064.불량사용자 (Lv.3) (0) | 2022.06.17 |
[Java] 프로그래머스 60057.문자열압축 (Lv.2) (0) | 2022.06.03 |
[Java] 프로그래머스 42888.오픈채팅방 (Lv.2) (0) | 2022.06.03 |
[JAVA] 프로그래머스 92334.신고 결과 받기 (Lv.1) (0) | 2022.05.24 |