[ํ๋ก๊ทธ๋๋จธ์ค] ๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์
https://programmers.co.kr/learn/courses/30/lessons/77484
๋ฌธ์ ์ค๋ช
๋ก๋ 6/45(์ดํ '๋ก๋'๋ก ํ๊ธฐ)๋ 1๋ถํฐ 45๊น์ง์ ์ซ์ ์ค 6๊ฐ๋ฅผ ์ฐ์ด์ ๋งํ๋ ๋ํ์ ์ธ ๋ณต๊ถ์ ๋๋ค. ์๋๋ ๋ก๋์ ์์๋ฅผ ์ ํ๋ ๋ฐฉ์์ ๋๋ค. 1
์์ ๋น์ฒจ ๋ด์ฉ
1 6๊ฐ ๋ฒํธ๊ฐ ๋ชจ๋ ์ผ์น
2 5๊ฐ ๋ฒํธ๊ฐ ์ผ์น
3 4๊ฐ ๋ฒํธ๊ฐ ์ผ์น
4 3๊ฐ ๋ฒํธ๊ฐ ์ผ์น
5 2๊ฐ ๋ฒํธ๊ฐ ์ผ์น
6(๋์ฒจ) ๊ทธ ์ธ
๋ก๋๋ฅผ ๊ตฌ๋งคํ ๋ฏผ์ฐ๋ ๋น์ฒจ ๋ฒํธ ๋ฐํ์ผ์ ํ์๊ณ ๋ํ๊ณ ์์์ต๋๋ค. ํ์ง๋ง, ๋ฏผ์ฐ์ ๋์์ด ๋ก๋์ ๋์๋ฅผ ํ์ฌ, ์ผ๋ถ ๋ฒํธ๋ฅผ ์์๋ณผ ์ ์๊ฒ ๋์์ต๋๋ค. ๋น์ฒจ ๋ฒํธ ๋ฐํ ํ, ๋ฏผ์ฐ๋ ์์ ์ด ๊ตฌ๋งคํ๋ ๋ก๋๋ก ๋น์ฒจ์ด ๊ฐ๋ฅํ๋ ์ต๊ณ ์์์ ์ต์ ์์๋ฅผ ์์๋ณด๊ณ ์ถ์ด ์ก์ต๋๋ค.
์์๋ณผ ์ ์๋ ๋ฒํธ๋ฅผ 0์ผ๋ก ํ๊ธฐํ๊ธฐ๋ก ํ๊ณ , ๋ฏผ์ฐ๊ฐ ๊ตฌ๋งคํ ๋ก๋ ๋ฒํธ 6๊ฐ๊ฐ 44, 1, 0, 0, 31 25๋ผ๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค. ๋น์ฒจ ๋ฒํธ 6๊ฐ๊ฐ 31, 10, 45, 1, 6, 19๋ผ๋ฉด, ๋น์ฒจ ๊ฐ๋ฅํ ์ต๊ณ ์์์ ์ต์ ์์์ ํ ์๋ ์๋์ ๊ฐ์ต๋๋ค.
๋น์ฒจ ๋ฒํธ 31 10 45 1 6 19 ๊ฒฐ๊ณผ
์ต๊ณ ์์ ๋ฒํธ 31 0→10 44 1 0→6 25 4๊ฐ ๋ฒํธ ์ผ์น, 3๋ฑ
์ต์ ์์ ๋ฒํธ 31 0→11 44 1 0→7 25 2๊ฐ ๋ฒํธ ์ผ์น, 5๋ฑ
- ์์์ ์๊ด์์ด, ๊ตฌ๋งคํ ๋ก๋์ ๋น์ฒจ ๋ฒํธ์ ์ผ์นํ๋ ๋ฒํธ๊ฐ ์์ผ๋ฉด ๋งํ ๊ฑธ๋ก ์ธ์ ๋ฉ๋๋ค.
- ์์๋ณผ ์ ์๋ ๋ ๊ฐ์ ๋ฒํธ๋ฅผ ๊ฐ๊ฐ 10, 6์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด 3๋ฑ์ ๋น์ฒจ๋ ์ ์์ต๋๋ค.
- 3๋ฑ์ ๋ง๋๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค๋ ์กด์ฌํฉ๋๋ค. ํ์ง๋ง, 2๋ฑ ์ด์์ผ๋ก ๋ง๋๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
- ์์๋ณผ ์ ์๋ ๋ ๊ฐ์ ๋ฒํธ๋ฅผ ๊ฐ๊ฐ 11, 7์ด๋ผ๊ณ ๊ฐ์ ํ๋ฉด 5๋ฑ์ ๋น์ฒจ๋ ์ ์์ต๋๋ค.
- 5๋ฑ์ ๋ง๋๋ ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค๋ ์กด์ฌํฉ๋๋ค. ํ์ง๋ง, 6๋ฑ(๋์ฒจ)์ผ๋ก ๋ง๋๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๋ฏผ์ฐ๊ฐ ๊ตฌ๋งคํ ๋ก๋ ๋ฒํธ๋ฅผ ๋ด์ ๋ฐฐ์ด lottos, ๋น์ฒจ ๋ฒํธ๋ฅผ ๋ด์ ๋ฐฐ์ด win_nums๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง๋๋ค. ์ด๋, ๋น์ฒจ ๊ฐ๋ฅํ ์ต๊ณ ์์์ ์ต์ ์์๋ฅผ ์ฐจ๋ก๋๋ก ๋ฐฐ์ด์ ๋ด์์ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- lottos๋ ๊ธธ์ด 6์ธ ์ ์ ๋ฐฐ์ด์ ๋๋ค.
- lottos์ ๋ชจ๋ ์์๋ 0 ์ด์ 45 ์ดํ์ธ ์ ์์ ๋๋ค.
- 0์ ์์๋ณผ ์ ์๋ ์ซ์๋ฅผ ์๋ฏธํฉ๋๋ค.
- 0์ ์ ์ธํ ๋ค๋ฅธ ์ซ์๋ค์ lottos์ 2๊ฐ ์ด์ ๋ด๊ฒจ์์ง ์์ต๋๋ค.
- lottos์ ์์๋ค์ ์ ๋ ฌ๋์ด ์์ง ์์ ์๋ ์์ต๋๋ค.
- win_nums์ ๊ธธ์ด 6์ธ ์ ์ ๋ฐฐ์ด์ ๋๋ค.
- win_nums์ ๋ชจ๋ ์์๋ 1 ์ด์ 45 ์ดํ์ธ ์ ์์ ๋๋ค.
- win_nums์๋ ๊ฐ์ ์ซ์๊ฐ 2๊ฐ ์ด์ ๋ด๊ฒจ์์ง ์์ต๋๋ค.
- win_nums์ ์์๋ค์ ์ ๋ ฌ๋์ด ์์ง ์์ ์๋ ์์ต๋๋ค.
Code
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
int cnt = 0;
int max_cnt = 0;
for(int lotto: lottos){
if(lotto==0) max_cnt++;
else {
for(int win_num: win_nums){
if(win_num==lotto) cnt++;
}
}
}
max_cnt+=cnt;
answer[0] = getGrade(max_cnt);
answer[1] = getGrade(cnt);
return answer;
}
public int getGrade(int cnt){
switch(cnt){
case 6:
return 1;
case 5:
return 2;
case 4:
return 3;
case 3:
return 4;
case 2:
return 5;
default:
return 6;
}
}
}
Code ์ค๋ช
์ด ๋ฌธ์ ๋ ์ผ๋จ 0์ด ์๋ ์๊ฐ ๋น์ฒจ ๋ฒํธ์ ๋ช๊ฐ๊ฐ ๋ง๋์ง ๊ฐฏ์์ 0์ธ ์์ ๊ฐฏ์๋ฅผ ์ผ๋ค.
๊ทธ๋ฆฌ๊ณ ์ต๋ ๋ฑ์๋ 0์ธ ์๊ฐ ๋ชจ๋ ๋น์ฒจ๋ฒํธ์ผ ๊ฒฝ์ฐ์ด๊ณ ,
์ต์ ๋ฑ์๋ 0์ธ ์๊ฐ ๋ชจ๋ ๋น์ฒจ ๋ฒํธ๊ฐ ์๋ ๊ฒฝ์ฐ์ด๋ค.
๊ทธ๋์ ์ด๋ฌํ ๋ ๊ฒฝ์ฐ๋ฅผ ๊ฐ๊ฐ cnt์ max_cnt์ ๋ฃ๊ณ getGradeํจ์๋ฅผ ํตํด์ ๋ฑ์๋ฅผ ๋ฐํ ๋ฐ๋๋ค.
๋ฐฐ์ด์
์ด๋ฒ ๋ฌธ์ ๋ ๋จ์ํ๊ฒ ๋ฐฐ์ด์ ํตํด์ ๋น๊ตํ๊ณ switch๋ฌธ์ผ๋ก ๋ฑ์๋ฅผ ๊ตฌํ๋ ๋ฐฉ์์ด์๋ค.
์ฒ์์๋ getGrade ํจ์๋ฅผ ๋ง๋ค์ง ์๊ณ ์ฝ๋๋ฅผ ์ค๋ณตํด์ ์ฌ์ฉํ๋๋ฐ ์จ๋๊ณ ๋ณด๋ ๋๋ฌด ๊ธธ๊ณ ํจ์๋ก ๋ฐ๊พธ๋ฉด ๋ ์งง์์ง๋ ๋ค๋ฅธ์ฌ๋์ ํ์ด๋ฅผ ๋ณด๊ณ
ํจ์๋ก ๋ง๋ค์ด ์ฃผ์๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ๋คํธ ๊ฒ์ (0) | 2021.07.23 |
---|---|
[Algoritm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์์ฐ (0) | 2021.07.23 |
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ํคํจ๋ ๋๋ฅด๊ธฐ (1) | 2021.07.18 |
[Algorithm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์ซ์ ๋ฌธ์์ด๊ณผ ์๋จ์ด (0) | 2021.07.18 |
[Algoritm/Java][ํ๋ก๊ทธ๋๋จธ์ค] ์ฒด์ก๋ณต (0) | 2021.07.13 |