์ฝ๋ฉ ํ ์คํธ ์ฐ์ต - 2021 Dev-Matching: ์น ๋ฐฑ์๋ ๊ฐ๋ฐ์
<๋ก๋์ ์ต๊ณ ์์์ ์ต์ ์์>
๋ฌธ์ ์ค๋ช
๋ก๋ 6/45 (์ดํ '๋ก๋'๋ก ํ๊ธฐ)๋ 1๋ถํฐ 45๊น์ง์ ์ซ์ ์ค 6๊ฐ๋ฅผ ์ฐ์ด์ ๋งํ๋ ๋ํ์ ์ธ ๋ณต๊ถ์ ๋๋ค. ์๋๋ ๋ก๋์ ์์๋ฅผ ์ ํ๋ ๋ฐฉ์์ ๋๋ค.
๋ก๋๋ฅผ ๊ตฌ๋งคํ ๋ฏผ์ฐ๋ ๋น์ฒจ ๋ฒํธ ๋ฐํ์ผ์ ํ์๊ณ ๋ํ๊ณ ์์์ต๋๋ค. ํ์ง๋ง, ๋ฏผ์ฐ์ ๋์์ด ๋ก๋์ ๋์๋ฅผ ํ์ฌ, ์ผ๋ถ ๋ฒํธ๋ฅผ ์์๋ณผ ์ ์๊ฒ ๋์์ต๋๋ค. ๋น์ฒจ ๋ฒํธ ๋ฐํ ํ, ๋ฏผ์ฐ๋ ์์ ์ด ๊ตฌ๋งคํ๋ ๋ก๋๋ก ๋น์ฒจ์ด ๊ฐ๋ฅํ๋ ์ต๊ณ ์์์ ์ต์ ์์๋ฅผ ์์๋ณด๊ณ ์ถ์ด ์ก์ต๋๋ค. ์์๋ณผ ์ ์๋ ๋ฒํธ๋ฅผ 0์ผ๋ก ํ๊ธฐํ๊ธฐ๋ก ํ๊ณ , ๋ฏผ์ฐ๊ฐ ๊ตฌ๋งคํ ๋ก๋ ๋ฒํธ 6๊ฐ๊ฐ
44, 1, 0, 0, 31 25๋ผ๊ณ ๊ฐ์ ํด๋ณด๊ฒ ์ต๋๋ค. ๋น์ฒจ ๋ฒํธ 6๊ฐ๊ฐ 31, 10, 45, 1, 6, 19๋ผ๋ฉด, ๋น์ฒจ ๊ฐ๋ฅํ ์ต๊ณ ์์์ ์ต์ ์์์ ํ ์๋ ์๋์ ๊ฐ์ต๋๋ค.
- ์์์ ์๊ด์์ด, ๊ตฌ๋งคํ ๋ก๋์ ๋น์ฒจ ๋ฒํธ์ ์ผ์นํ๋ ๋ฒํธ๊ฐ ์์ผ๋ฉด ๋งํ ๊ฑธ๋ก ์ธ์ ๋ฉ๋๋ค.
- ์์๋ณผ ์ ์๋ ๋ ๊ฐ์ ๋ฒํธ๋ฅผ ๊ฐ๊ฐ 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์ ์์๋ค์ ์ ๋ ฌ๋์ด ์์ง ์์ ์๋ ์์ต๋๋ค.)
๋ฌธ์ ํ์ด
- my solution
//JAVA
import java.util.HashMap;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
HashMap<Integer,Integer> map = new HashMap<>(); //์์
map.put(6,1);
map.put(5,2);
map.put(4,3);
map.put(3,4);
map.put(2,5);
map.put(1,6);
map.put(0,6);
int correct=0;
int zero=0;
for(int i=0; i<6; i++){
if (lottos[i]==0){ //์์ ๋ณผ์ ์๋ ๋ฒํธ
zero+=1;
}
else{
for(int j=0; j<6; j++){
if(lottos[i]==win_nums[j]){ //์ผ์นํ๋ ๋ฒํธ
correct+=1;
}
}
}
}
answer[0]=map.get(correct+zero); //์ต๊ณ ์์
answer[1]=map.get(correct); //์ต์ ์์
return answer;
}
}
#Python
def solution(lottos, win_nums):
answer = []
match=[]
zero=0
for i in lottos:
if i==0: #์์ ๋ณผ ์ ์๋ ๋ฒํธ
zero+=1
else:
for j in win_nums:
if i==j: #์ผ์นํ๋ ๋ฒํธ
match.append(i)
dic = {6:1, 5:2, 4:3, 3:4, 2:5, 1:6, 0:6}
answer.append(dic[len(match)+zero]) #์ต๊ณ ์์
answer.append(dic[len(match)]) #์ต์ ์์
return answer
1) ์์๋ณผ ์ ์๋ ๋ฒํธ count
2) ์ผ์นํ๋ ๋ฒํธ count
3) ์ต๊ณ ์์: ์ผ์นํ๋ ๋ฒํธ + ์์๋ณผ ์ ์๋ ๋ฒํธ
์ต์ ์์: ์ผ์นํ๋ ๋ฒํธ
์๊ฐ๐ค
์๊ณ ๋ฆฌ์ฆ์ ํ๋ฉฐ ๋ค์ level 1์ผ๋ก ๋์์๋ค.
์ฐจ๊ทผ์ฐจ๊ทผ ์ฌ๋ผ๊ฐ๊ธฐ ์ํด,,(?)
๋ฌธ์ ๊ธธ์ด๊ฐ ๊ธด ๊ฒ์ ๋นํด ์ฝ๋๋ ์งง๊ฒ ๊ตฌํํ ์ ์์๋ค.
ํฌ๊ฒ ์๊ฐํ ๋ถ๋ถ ์์ด ์ฝ๊ฒ ํต๊ณผํ ์ ์๋ ๋ฌธ์ ์๋ค.
์ถ์ฒ: ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉ ํ ์คํธ ์ฐ์ต, https://programmers.co.kr/learn/challenges
'๐Algorithm > ๐ฅprogrammers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[programmers] ํผ๋ก๋ - ์ํด๋ฆฌ ์ฑ๋ฆฐ์ง (0) | 2021.12.01 |
---|---|
[programmers] 124 ๋๋ผ์ ์ซ์ (0) | 2021.12.01 |
[programmers] [3์ฐจ] ์์ถ - 2018 KAKAO BLIND RECRUITMENT (0) | 2021.09.28 |
[programmers] ์์ ๊ฒ์ - 2021 KAKAO BLIND RECRUITMENT (0) | 2021.09.14 |
[programmers] ๋คํธ์ํฌ (0) | 2021.09.13 |