๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”ฅ PS(Problem Solving) ๐Ÿ”ฅ/programmers

[programmers] ์™„์ „ํƒ์ƒ‰, ๋ชจ์˜๊ณ ์‚ฌ

by dar0m! 2020. 3. 11.
 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ชจ์˜๊ณ ์‚ฌ | ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 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. 1๋ฒˆ ๋ถ€ํ„ฐ 3๋ฒˆ ์ˆ˜ํฌ์ž๋“ค์ด ๋ฌธ์ œ๋ฅผ ์ฐ๋Š” ํŒจํ„ด์„ ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค์–ด๋‘”๋‹ค. → p1, p2, p3
  2. ans๋ผ๋Š” ๋ฐฐ์—ด์„ ๋งŒ๋“ค์–ด์„œ ์ˆ˜ํฌ์ž๋“ค์˜ ๊ฐ ์ •๋‹ต ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•œ๋‹ค.
    → i๋ฒˆ ์ˆ˜ํฌ์ž๊ฐ€ ์ •๋‹ต์„ ๋งž์ท„๋‹ค๋ฉด ans[i]์˜ ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
  3. ์ •๋‹ต๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉด์„œ ์ˆ˜ํฌ์ž๋“ค์ด ์„ ํƒํ•œ ์ •๋‹ต๊ณผ ๋น„๊ตํ•˜์—ฌ ๋งž์œผ๋ฉด ans[์ˆ˜ํฌ์ž ๋ฒˆํ˜ธ]์˜ ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
  4. ์ •๋‹ต ๊ธธ์ด๋งŒํผ ๋ฐ˜๋ณต๋ฌธ์„ ๊ฑฐ์น˜๊ณ ๋‚˜๋ฉด ์ˆ˜ํฌ์ž๋“ค์ด ๋งžํžŒ ๋‹ต์˜ ๊ฐœ์ˆ˜๊ฐ€ ๊ฐ€์žฅ ํฐ ๊ฐ’์„ Max๋ณ€์ˆ˜์— ์ €์žฅํ•œ๋‹ค.
  5. 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[] = { 12345}, p2[] = { 21232425}, p3[] = { 3311224455 };
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

๋Œ“๊ธ€