떵호
seongho'Dev
떵호
전체 방문자
오늘
어제
  • 분류 전체보기 (116)
    • 회고 (2)
    • Algorithm (74)
      • 프로그래머스 (65)
      • 백준(BOJ) (2)
      • Note (7)
    • 기술독서 (25)
      • Clean Code (11)
      • 자바의 정석 (8)
      • 대규모 시스템 설계 기초 (6)
    • Computer Science (1)
      • Operating System (1)
    • Typescript (1)
    • JAVA (0)
    • Spring (6)
      • JPA (6)
    • AWS (2)
    • Git (2)
    • Etc (2)

블로그 메뉴

  • github

티스토리

태그

  • 프로그래머스
  • 코딩테스트 준비
  • 알고리즘
  • 카카오 코테
  • 구현
  • 클린코드
  • JPA
  • Clean Code
  • 자바의 정석
  • 완전탐색
hELLO · Designed By 정상우.
떵호

seongho'Dev

[Java] 프로그래머스 - 로또의 최고 순위와 최저 순위(Level 1)
Algorithm/프로그래머스

[Java] 프로그래머스 - 로또의 최고 순위와 최저 순위(Level 1)

2022. 4. 10. 03:14
728x90

🔗 문제

 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

 

💡 풀이

이 문제의 핵심은 0을 개수를 당첨 번호로 가정해서 최고 순위와 0을 제외해 최저 순위를 구하는 것이다.

 

  • 최고 순위 : 0의 개수 + 맞은 번호의 수
  • 최저 순위 : 맞은 번호의 수

최고 순위와 최저 순위는 위와 같이 구할 수 있다.

💻 코드

import java.util.*;

public class Solution {

    public int[] solution(int[] lottos, int[] win_nums) {
        int[] answer = new int[2];

        Map<Integer, Integer> compareRank = init();

        int zero_count = 0, same_number = 0;

        for (int i = 0; i < 6; i++) {
            if (lottos[i] == 0) {
                zero_count += 1;
                continue;
            }
            for (int j = 0; j < 6; j++) {
                if (lottos[i] == win_nums[j]) {
                    same_number += 1;
                    break;
                }
            }
        }

        answer[0] = compareRank.get(same_number + zero_count);
        answer[1] = compareRank.get(same_number);

        return answer;
    }

    private Map<Integer, Integer> init() {
        Map<Integer, Integer> ret = new HashMap<>();
        int rank = 6;
        for (int i = 0; i <= 6; i++) {
            if (i == 0 || i == 1) {
                ret.put(i, rank);
                continue;
            }
            rank -= 1;
            ret.put(i, rank);
        }
        return ret;
    }
}
728x90
저작자표시 (새창열림)

'Algorithm > 프로그래머스' 카테고리의 다른 글

[Java] 프로그래머스 Lv2 - 쿼드압축 후 개수 세기  (1) 2022.04.13
[Java] 프로그래머스 Lv2 - n^2 배열 자르기  (2) 2022.04.12
[Java] 프로그래머스 - 점프와 순간 이동 (Level 2)  (1) 2022.04.09
[JAVA 풀이] 프로그래머스 - 이진 변환 반복하기 (Level2)  (0) 2022.04.07
[JAVA 풀이] 프로그래머스 - 캐시 (2018 KAKAO BLIND RECRUITMENT)  (0) 2022.04.07
    'Algorithm/프로그래머스' 카테고리의 다른 글
    • [Java] 프로그래머스 Lv2 - 쿼드압축 후 개수 세기
    • [Java] 프로그래머스 Lv2 - n^2 배열 자르기
    • [Java] 프로그래머스 - 점프와 순간 이동 (Level 2)
    • [JAVA 풀이] 프로그래머스 - 이진 변환 반복하기 (Level2)
    떵호
    떵호

    티스토리툴바