로또의 최고 순위와 최저 순위 (자바 Java) : [프로그래머스 코딩테스트 연습 - Level 1]

daehong770·2021년 11월 18일
2

1. Problem (문제) 📖

(1). 문제 설명 📖

【 로또의 최고 순위와 최저순위 】
  https://programmers.co.kr/learn/courses/30/lessons/77484


(2). 제한사항 📖


(3). 입출력 예 📖



2. Solution Approach (풀이 접근) 🔑

  • 0은 맞췄을 수도 있고, 틀렸을 수도 있는 수이다.

  • 즉, 최댓값은 '실제로 맞춘 수 + 0의 갯수'이며, 최소값은 '실제로 맞춘수' 이다.
  • 0의 갯수와, 실제로 맞춘 갯수를 따로 담을 수 있는 변수를 만든다.
  • lottos[ ]와 win_nums[ ] 배열을 'for each문'을 통해 비교하면 된다.


3. Code (코드) 💻

(1). 내가 처음 작성한 코드 💻


(2). 다른 사람이 작성한 코드 💻

💬 이건 풀이 방법이 신기해서 가져와봤다.

💬 대부분의 사람들은 내 풀이 방식과 비슷하였다.



4. Solution (풀이) 🎲

  • 1. 0의 갯수와, 번호를 맞춘 갯수에 대한 변수를 생성해준다.

  • 2. For Each문을 통해 자신의 로또번호(lottos[ ]) 속 0의 갯수를 알아낸다.
  • 3. 0이 아니라면, 당첨번호(win_nums[ ])와 비교하며 맞췄는지를 확인해준다.
  • 4. 이 때 당첨번호에 중복된 숫자가 있을 수도 있기 때문에 break;를 넣어준다.
  • 5. 일치하는 숫자에 대한 최대갯수와 최소갯수에 대한 변수를 만들어 준다.
       (최대개수 = 0의 개수 + 맞춘 개수 // 최소개수 = 맞춘 개수)
  • 6. 둘 중 더 작은 수를 선정해주는 Math.min(A, B)를 통해 등수를 구해준 후 배열에 담아서 return한다.


5. 마무리 😀

- 풀이 시간 : [2021-10-25] 22:42 ~ 22:52 (10분)

- 점수 : 100.0 / 100.0

처음 프로그래머스에 접해보고, 푼 문제인데 생각보다 신선한 충격을 받았던 기억이 난다. 이 문제를 다시 풀어봄으로써 그 때의 감회를 다시 느낄 수 있었다. 앞으로도 풀었던 문제를 다시 한 번 풀어보면서 Velog에 업로드 할 것이다.

profile
하루 하루, 한 줄 한 줄, 성장하는 개발자 (Better_than_Yesterday Coding)

0개의 댓글