[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ์˜๊ณ ์‚ฌ (JAVA)

2025. 1. 30. 23:36ยท๐Ÿ’ช Algorithm
๋ฐ˜์‘ํ˜•

๋งํฌ

https://school.programmers.co.kr/learn/courses/30/lessons/42840

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๋ฌธ์ œ ์š”์•ฝ

์ˆ˜ํฌ์ž 3๋ช…์ด ์ฃผ์–ด์ง„ ํŒจํ„ด์œผ๋กœ ์ •๋‹ต์„ ์ฐ๊ณ , ์ •๋‹ต ๋ฆฌ์ŠคํŠธ answers๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ ๊ฐ€์žฅ ์ •๋‹ต์„ ๋งŽ์ด ๋งžํžŒ ์‚ฌ๋žŒ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

  • 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,...

 

์ œํ•œ

  • ์‹œํ—˜์€ ์ตœ๋Œ€ 10,000 ๋ฌธ์ œ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌธ์ œ์˜ ์ •๋‹ต์€ 1, 2, 3, 4, 5์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.
  • ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ๋ฐ›์€ ์‚ฌ๋žŒ์ด ์—ฌ๋Ÿฟ์ผ ๊ฒฝ์šฐ, return ํ•˜๋Š” ๊ฐ’์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด ์ฃผ์„ธ์š”.

 

ํ’€์ด

๊ฐ€์žฅ ์‰ฝ๊ฒŒ ๋– ์˜ค๋ฅด๋Š” ๋ฐฉ์‹์€ ์ •๋‹ต๊ณผ 1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ์ด ์„ ํƒํ•œ ์ •๋‹ต์„ ํ•œ ๋ฌธ์ œ์”ฉ ๋น„๊ตํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ์ด O(3N)=O(N)์˜ ์‹œ๊ฐ„๋ณต์žก๋„๋กœ ๋ฌธ์ œ๋ฅผ ํ’€ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. answers์˜ i๋ฒˆ์งธ ๋ฌธ์ œ ์ •๋‹ต๊ณผ, 1๋ฒˆ 2๋ฒˆ 3๋ฒˆ์ด ์„ ํƒํ•œ i๋ฒˆ์งธ ๋ฌธ์ œ ์ •๋‹ต์„ ๋น„๊ตํ•œ๋‹ค.
  2. ๋งŒ์•ฝ ์ •๋‹ต์ด ๋งž์œผ๋ฉด ๊ฐ ์ˆ˜ํฌ์ž์˜ count ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.
  3. ์ •๋‹ต ๋น„๊ต๊ฐ€ ๋๋‚œ ํ›„, count ๊ฐ’์ด ๋™์ผํ•œ ์‚ฌ๋žŒ์ด ์žˆ์œผ๋ฉด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด ๊ณ ๋“์ ์ž ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

์ถ”๊ฐ€์ ์œผ๋กœ ์ƒ๊ฐํ•ด์•ผ ํ•  ๊ฒƒ์€ i๋ฒˆ์งธ ๋ฌธ์ œ์— ๋Œ€ํ•ด ์„ธ ์‚ฌ๋žŒ์ด ์–ด๋–ค ์ •๋‹ต์„ ํƒํ–ˆ๋Š”๊ฐ€์ž…๋‹ˆ๋‹ค.

์ฐ๋Š” ๋ฐฉ์‹์„ ์‚ดํŽด๋ณด๋ฉด ๊ฐ์ž ํŒจํ„ด์ด ์žˆ๋Š”๋ฐ, ์ฒ˜์Œ์—๋Š” ์ด ํŒจํ„ด์„ ์ˆ˜ํ•™์ ์œผ๋กœ ์ •์˜ํ•˜๋ ค ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€๋ น, 1๋ฒˆ ์ˆ˜ํฌ์ž๋Š” ์ธ๋ฑ์Šค i์— ๋Œ€ํ•ด (i%5+1)์„ ์„ ํƒํ•œ๋‹ค๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ด์™€ ๋˜‘๊ฐ™์ด ์ˆ˜ํ•™์ ์œผ๋กœ 2๋ฒˆ, 3๋ฒˆ์˜ ์ •๋‹ต์„ ์ •์˜ํ•˜๋ ค๋‹ˆ ์–ด๋ ค์›€์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

๊ทธ๋ž˜์„œ ์ƒ๊ฐํ•œ ๋ฐฉ๋ฒ•์€ ์ผ๋‹จ ๊ฐ์ž ๋ฐ˜๋ณต๋˜๋Š” ๋ถ€๋ถ„์„ ๋ฐฐ์—ด๋กœ ์ •์˜ํ•ด ๋‘๊ณ , ์ด๋ฅผ ์ธ๋ฑ์‹ฑํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

์ฝ”๋“œ

import java.util.*;

class Solution {
    public int[] solution(int[] answers) {
        int cnt1=0, cnt2=0, cnt3=0;
        int[] pat1={1,2,3,4,5};
        int[] pat2={2,1,2,3,2,4,2,5};
        int[] pat3={3,3,1,1,2,2,4,4,5,5};
        for(int i=0; i<answers.length; i++){
            if(answers[i]==pat1[i%5]) cnt1++;
            if(answers[i]==pat2[i%8]) cnt2++;
            if(answers[i]==pat3[i%10]) cnt3++;
        }
        ArrayList<Integer> highest = new ArrayList<>();
        int mx = Math.max(Math.max(cnt1,cnt2),cnt3);
        if(cnt1==mx) highest.add(1);
        if(cnt2==mx) highest.add(2);
        if(cnt3==mx) highest.add(3);

        return highest.stream().mapToInt(Integer::intValue).toArray();
    }
}

 

[์‹œ๊ฐ„ ๋ณต์žก๋„]

  • N: answers ๊ธธ์ด
  • answers๋ฅผ ์ˆœํšŒํ•˜๋ฉฐ 3๋ช…์˜ ์ ์ˆ˜๋ฅผ ๊ณ„์‚ฐ → O(N)
  • ๊ทธ ์ดํ›„๋Š” N์— ์˜ํ–ฅ์„ ์•ˆ ๋ฐ›์œผ๋ฏ€๋กœ ์ƒ์ˆ˜ ๋ณต์žก๋„
  • ์ตœ์ข… ์‹œ๊ฐ„ ๋ณต์žก๋„ = O(N)

[์ถ”๊ฐ€]

์„ธ ์‚ฌ๋žŒ์˜ ํŒจํ„ด์„ ํ•˜๋‚˜์˜ 2์ฐจ์› ๋ฐฐ์—ด์— ์ €์žฅํ•˜๊ณ , cnt ๊ฐ’๋„ 1์ฐจ์› ๋ฐฐ์—ด์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค๋ฉด 2์ค‘ for๋ฌธ์œผ๋กœ ๋งŒ๋“ค์–ด ๋‚ด๋ถ€์˜ ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • `if(answers [i]==pat [j][i% pat [j]. length]) cnt [j]++;`
๋ฐ˜์‘ํ˜•

'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฐฉ๋ฌธ ๊ธธ์ด (JAVA)  (2) 2025.02.03
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹คํŒจ์œจ (JAVA)  (1) 2025.02.02
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ (JAVA)  (1) 2025.02.01
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ (JAVA)  (0) 2025.01.30
'๐Ÿ’ช Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ฐฉ๋ฌธ ๊ธธ์ด (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์‹คํŒจ์œจ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ํ–‰๋ ฌ์˜ ๊ณฑ์…ˆ (JAVA)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋‘ ๊ฐœ ๋ฝ‘์•„์„œ ๋”ํ•˜๊ธฐ (JAVA)
dev-heyjin
dev-heyjin
  • dev-heyjin
    ๊ฐœ๋ฐœ ๊ธฐ๋ก
    dev-heyjin
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (56)
      • ๐ŸŽฏ Programming (8)
      • ๐Ÿ’ช Algorithm (16)
      • โš™๏ธ CS (31)
        • ๋„คํŠธ์›Œํฌ (15)
        • ์šด์˜์ฒด์ œ (15)
        • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (0)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ํ•ดํ‚น
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    DB
    RDS
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
dev-heyjin
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๋ชจ์˜๊ณ ์‚ฌ (JAVA)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”