[programmers] μμ νμ, λͺ¨μκ³ μ¬
μ½λ©ν μ€νΈ μ°μ΅ - λͺ¨μκ³ μ¬ | νλ‘κ·Έλλ¨Έμ€
μν¬μλ μνμ ν¬κΈ°ν μ¬λμ μ€λ§μ λλ€. μν¬μ μΌμΈλ°©μ λͺ¨μκ³ μ¬μ μν λ¬Έμ λ₯Ό μ λΆ μ°μΌλ € ν©λλ€. μν¬μλ 1λ² λ¬Έμ λΆν° λ§μ§λ§ λ¬Έμ κΉμ§ λ€μκ³Ό κ°μ΄ μ°μ΅λλ€. 1λ² μν¬μκ° μ°λ λ°©μ: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2λ² μν¬μκ° μ°λ λ°©μ: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3λ² μν¬μκ° μ°λ λ°©μ: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3,
programmers.co.kr
λ¬Έμ
μν¬μλ μνμ ν¬κΈ°ν μ¬λμ μ€λ§μ λλ€. μν¬μ μΌμΈλ°©μ λͺ¨μκ³ μ¬μ μν λ¬Έμ λ₯Ό μ λΆ μ°μΌλ € ν©λλ€. μν¬μλ 1λ² λ¬Έμ λΆν° λ§μ§λ§ λ¬Έμ κΉμ§ λ€μκ³Ό κ°μ΄ μ°μ΅λλ€.
- 1λ² μν¬μκ° μ°λ λ°©μ: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ...
- 2λ² μν¬μκ° μ°λ λ°©μ: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ...
- 3λ² μν¬μκ° μ°λ λ°©μ: 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, 3, 3, 1, 1, 2, 2, 4, 4, 5, 5, ...
1λ² λ¬Έμ λΆν° λ§μ§λ§ λ¬Έμ κΉμ§μ μ λ΅μ΄ μμλλ‘ λ€μ λ°°μ΄ answersκ° μ£Όμ΄μ‘μ λ, κ°μ₯ λ§μ λ¬Έμ λ₯Ό λ§ν μ¬λμ΄ λꡬμΈμ§ λ°°μ΄μ λ΄μ return νλλ‘ solution ν¨μλ₯Ό μμ±ν΄μ£ΌμΈμ.
μ ν 쑰건
- μνμ μ΅λ 10,000 λ¬Έμ λ‘ κ΅¬μ±λμ΄μμ΅λλ€.
- λ¬Έμ μ μ λ΅μ 1, 2, 3, 4, 5μ€ νλμ λλ€.
- κ°μ₯ λμ μ μλ₯Ό λ°μ μ¬λμ΄ μ¬λΏμΌ κ²½μ°, returnνλ κ°μ μ€λ¦μ°¨μ μ λ ¬ν΄μ£ΌμΈμ.
ν΄κ²°
- 1λ² λΆν° 3λ² μν¬μλ€μ΄ λ¬Έμ λ₯Ό μ°λ ν¨ν΄μ λ°°μ΄λ‘ λ§λ€μ΄λλ€. → p1, p2, p3
- ansλΌλ λ°°μ΄μ λ§λ€μ΄μ μν¬μλ€μ κ° μ λ΅ κ°μλ₯Ό μ μ₯νλ€.
→ iλ² μν¬μκ° μ λ΅μ λ§μ·λ€λ©΄ ans[i]μ κ°μ μ¦κ°μν¨λ€. - μ λ΅κΈΈμ΄λ§νΌ λ°λ³΅λ¬Έμ λλ©΄μ μν¬μλ€μ΄ μ νν μ λ΅κ³Ό λΉκ΅νμ¬ λ§μΌλ©΄ ans[μν¬μ λ²νΈ]μ κ°μ μ¦κ°μν¨λ€.
- μ λ΅ κΈΈμ΄λ§νΌ λ°λ³΅λ¬Έμ κ±°μΉκ³ λλ©΄ μν¬μλ€μ΄ λ§ν λ΅μ κ°μκ° κ°μ₯ ν° κ°μ Maxλ³μμ μ μ₯νλ€.
- ansλ°°μ΄μ μννλ©° Maxκ°κ³Ό κ°μ κ°μ κ°μ§ μΈλ±μ€κ° μ‘΄μ¬νλ€λ©΄ answerλ°°μ΄μ μΆκ°νλ€.
μ΄λ κ² λͺ¨λ μ λ΅μ λν΄μ κ°κ° λΉκ΅νκ³ , κ°μ₯ ν° κ°μ 골λΌμ answerλ°°μ΄μ μΆκ°νλ©΄ κ°μ₯ λ§μ λ¬Έμ λ₯Ό λ§ν μ¬λμ΄ λꡬμΈμ§ μ€λ¦μ°¨μμΌλ‘ μ μ₯λ©λλ€.
μ½λ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int p1[] = { 1, 2, 3, 4, 5}, p2[] = { 2, 1, 2, 3, 2, 4, 2, 5}, p3[] = { 3, 3, 1, 1, 2, 2, 4, 4, 5, 5 };
int ans[5];
vector<int> solution(vector<int> answers) {
vector<int> answer;
int idx = 0, Max = 0;
for (int i = 0; i < answers.size(); i++){
if (p1[idx % 5] == answers[i]) ans[1]++;
if (p2[idx % 8] == answers[i]) ans[2]++;
if (p3[idx % 10] == answers[i]) ans[3]++;
idx++;
}
Max = max(ans[1], ans[2]);
Max = max(Max, ans[3]);
for (int i = 1; i <= 3; i++) {
if (Max == ans[i]) answer.push_back(i);
}
return answer;
}
|
cs |