꾸물꾸물 졔의 개발공부
[프로그래머스] 로또의 최고 순위와 최저 순위 - JAVA (2021 Dev-Matching: 웹 백엔드 개발자(상반기) Lv.1) 본문
알고리즘/프로그래머스
[프로그래머스] 로또의 최고 순위와 최저 순위 - JAVA (2021 Dev-Matching: 웹 백엔드 개발자(상반기) Lv.1)
체제 2023. 6. 19. 13:41https://school.programmers.co.kr/learn/courses/30/lessons/77484
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
알고리즘
- 최저 순위 : 표시되있는 숫자 중 맞춘 숫자의 갯수
- 최고 순위 : 최저순위 + 0의 갯수 (=지워진 숫자가 모두 당첨된 숫자)
구현 과정
- none_cnt : 지워진 숫자(=0) 의 갯수
- win_cnt : 당첨된 숫자의 갯수
1. lottos 배열을 탐색하며 0이 나올 경우, 지워진 숫자 none_cnt 를 카운트한다.
2. win_nums 배열과 같은 숫자를 가진 번호가 나올 경우, 당첨된 숫자 win_cnt 를 카운트 한다.
3. 최고 순위는 win_cnt + none_cnt 값의 순위
4. 최저 순위는 win_cnt 값의 순위
소스 코드
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
int none_cnt=0; //지워진 숫자
int win_cnt=0; //당첨된 숫자
for(int num : lottos){
if (num==0) none_cnt++;
for(int win : win_nums){
if(num == win) win_cnt++;
}
}
answer[0] = getGrade(none_cnt+win_cnt);
answer[1] = getGrade(win_cnt);
return answer;
}
static int getGrade(int n){
switch(n){
case 6:
return 1;
case 5:
return 2;
case 4:
return 3;
case 3:
return 4;
case 2:
return 5;
default:
return 6;
}
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 등산코스 정하기 - JAVA (2022 KAKAO TECH INTERNSHIP) (0) | 2023.08.22 |
---|---|
[프로그래머스] 다단계 칫솔 판매 - JAVA (2021 Dev-Matching: 웹 백엔드 개발자(상반기)) (0) | 2023.06.27 |
[프로그래머스] 코딩 테스트 공부 - JAVA (0) | 2023.05.09 |
[프로그래머스] 두 큐 합 같게 만들기 - JAVA (0) | 2023.05.03 |
[프로그래머스] 성격 유형 검사하기 - JAVA (0) | 2023.05.02 |