Programmers #28

์ด๊ฐ•์šฉยท2023๋…„ 7์›” 27์ผ
0

Programmers

๋ชฉ๋ก ๋ณด๊ธฐ
27/58

2016๋…„

๐Ÿ“‘ ๋ฌธ1) 2016๋…„ 1์›” 1์ผ์€ ๊ธˆ์š”์ผ์ž…๋‹ˆ๋‹ค. 2016๋…„ a์›” b์ผ์€ ๋ฌด์Šจ ์š”์ผ์ผ๊นŒ์š”? ๋‘ ์ˆ˜ a ,b๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ 2016๋…„ a์›” b์ผ์ด ๋ฌด์Šจ ์š”์ผ์ธ์ง€ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”. ์š”์ผ์˜ ์ด๋ฆ„์€ ์ผ์š”์ผ๋ถ€ํ„ฐ ํ† ์š”์ผ๊นŒ์ง€ ๊ฐ๊ฐ SUN,MON,TUE,WED,THU,FRI,SAT์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด a=5, b=24๋ผ๋ฉด 5์›” 24์ผ์€ ํ™”์š”์ผ์ด๋ฏ€๋กœ ๋ฌธ์ž์—ด "TUE"๋ฅผ ๋ฐ˜ํ™˜ํ•˜์„ธ์š”.


์ œํ•œ ์กฐ๊ฑด

  • 2016๋…„์€ ์œค๋…„์ž…๋‹ˆ๋‹ค.
  • 2016๋…„ a์›” b์ผ์€ ์‹ค์ œ๋กœ ์žˆ๋Š” ๋‚ ์ž…๋‹ˆ๋‹ค. (13์›” 26์ผ์ด๋‚˜ 2์›” 45์ผ๊ฐ™์€ ๋‚ ์งœ๋Š” ์ฃผ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค)

์ž…์ถœ๋ ฅ ์˜ˆ

abresult
524"TUE"

๋‚˜์˜ ํ’€์ด

package programmers;

public class Calendar {
	
	public static String solution(int a, int b) {
        
		String[] week = {"FRI","SAT","SUN","MON","TUE","WED","THU"};
		int[] monthDays = {31,29,31,30,31,30,31,31,30,31,30,31}; 
        
		int totalDays = b;
		
		for(int i = 0; i < a - 1; i++) {
			totalDays += monthDays[i];
		}
       
        return week[(totalDays - 1) % 7];
    }
	
	public static void main(String[] args) {
		solution(5, 24);
	}

}

๋‚˜์˜ ์ƒ๊ฐ

2016๋…„์€ ์œค๋…„์ด๋ผ๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ, 1์›”๋ถ€ํ„ฐ 12์›”๊นŒ์ง€์˜ ์ผ์ˆ˜๋ฅผ int[] ๋ฐฐ์—ด๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด, {31,29,31,30,31,30,31,31,30,31,30,31} ์ด๊ณ  ๋ฌธ์ œ์—์„œ๋Š” 1์›”1์ผ์ด ๊ธˆ์š”์ผ์ด๋ผ๊ณ  ์‹œ์ž‘์ ์„ ์•Œ๋ ค์ฃผ์—ˆ๊ธฐ๋•Œ๋ฌธ์—, String[] week ๋ฐฐ์—ด์˜ ์ฒซ๋ฒˆ์งธ index๋ฅผ FRI๋กœ ์‹œ์ž‘ํ•˜์˜€๋‹ค. 5์›”24์ผ์„ ์˜ˆ๋กœ๋“ค๋ฉด, 1~4์›”๊นŒ์ง€์˜ ์ผ ์ˆ˜์˜ ์ดํ•ฉ๊ณผ, 24์ผ์˜ ์ผ ์ˆ˜๋ฅผ ์ดํ•ฉ ๊ฒฐ๊ณผ๋ฅผ totalDays์— ๋”ํ•˜๊ณ , index๊ฐ€ 0๋ฒˆ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ ๋–„๋ฌธ์— ์ตœ์ข…์ ์œผ๋กœ week[(totalDays - 1) % 7]; ์„ ๋ฆฌํ„ดํ•œ๋‹ค.


LocalDate API๋ฅผ ์‚ฌ์šฉํ•œ ํ’€์ด

package programmers;

import java.time.LocalDate;

public class Calendar {
	
	public static String solution(int a, int b) {
       
        return LocalDate.of(2016, a, b).getDayOfWeek().toString().substring(0,3);
    }
	
	public static void main(String[] args) {
		solution(5, 24);
	}

}

LocalDate.of(2016,a,b) : 2016๋…„ a์›” b์ผ์˜ ๋‚ ์งœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” LocalDate ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ
.getDayOfWeek() : LocalDate ๊ฐ์ฒด์—์„œ ์š”์ผ์„ ๊ฐ€์ ธ์™€ LocalDate๊ฐ€ ๋ฌด์Šจ ์š”์ผ์ธ์ง€ ๋‚˜ํƒ€๋‚ด๋Š” DayOfWeek ์—ด๊ฑฐํ˜•์„ ๋ฐ˜ํ™˜(์—ด๊ฑฐํ˜•์€ MONDAY, TUESDAY, WEDNESDAY ...)
.substring(0,3) : ๋ฌธ์ž์—ด์—์„œ ์•ž์˜ ์„ธ ๋ฌธ์ž๋ฅผ ์ถ”์ถœ, ์š”์ผ์„ ํ‘œํ˜„ํ•˜๋Š” ๋ฌธ์ž์—ด์—์„œ ์•ž์˜ ์„ธ ๋ฌธ์ž๋งŒ์„ ๋ฐ˜ํ™˜ํ•˜๋ฏ€๋กœ, MONDAY - > MON, TUESDAY -> TUE๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.


๋ชจ์˜๊ณ ์‚ฌ

๐Ÿ“‘ ๋ฌธ2) ์ˆ˜ํฌ์ž๋Š” ์ˆ˜ํ•™์„ ํฌ๊ธฐํ•œ ์‚ฌ๋žŒ์˜ ์ค€๋ง์ž…๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž ์‚ผ์ธ๋ฐฉ์€ ๋ชจ์˜๊ณ ์‚ฌ์— ์ˆ˜ํ•™ ๋ฌธ์ œ๋ฅผ ์ „๋ถ€ ์ฐ์œผ๋ ค ํ•ฉ๋‹ˆ๋‹ค. ์ˆ˜ํฌ์ž๋Š” 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ํ•˜๋Š” ๊ฐ’์„ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌํ•ด์ฃผ์„ธ์š”.

์ž…์ถœ๋ ฅ ์˜ˆ

answersreturn
[1,2,3,4,5][1]
[1,3,2,4,2][1,2,3]

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ์ˆ˜ํฌ์ž 1์€ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ๋งžํ˜”์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜ํฌ์ž 2๋Š” ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜ํฌ์ž 3์€ ๋ชจ๋“  ๋ฌธ์ œ๋ฅผ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค.

๋‚˜์˜ ํ’€์ด

package programmers;

import java.util.ArrayList;
import java.util.Collections;

public class MockExam {
	 public static int[] solution(int[] answers) {
	        
	        int[][] patterns = {
	        		{1, 2, 3, 4, 5},
	        		{2, 1, 2, 3, 2, 4, 2, 5},
	        		{3, 3, 1, 1, 2, 2, 4, 4, 5, 5}
	        };
	        int[] scores = new int[3];
	        
	        for(int i = 0; i < answers.length; i++) {
	        	for(int j = 0; j < 3; j++) {
	        		if(patterns[j][i % patterns[j].length] == answers[i]) {
	        			scores[j]++;
	        		}
	        	}
	        }
	        
	        int maxScore = Math.max(scores[0], Math.max(scores[1], scores[2]));
	        ArrayList<Integer> winners = new ArrayList<>();
	        for(int i = 0; i < 3; i++) {
	        	if(scores[i] == maxScore) {
	        		winners.add(i + 1);
        		}
	        }
	        Collections.sort(winners);
	        
	        
	        int[] answer = new int[winners.size()];
	        int cnt = 0;
	        for(Integer a : winners) {
	        	answer[cnt++] = a;
	        }
	        
	        
	        return answer;
	    }
	 
	 public static void main(String[] args) {
		solution(new int[] {1,2,3,4,5});
	}
}

๋‚˜์˜ ์ƒ๊ฐ

int[][] patterns = {
    {1, 2, 3, 4, 5},
    {2, 1, 2, 3, 2, 4, 2, 5},
    {3, 3, 1, 1, 2, 2, 4, 4, 5, 5}
};

์„ธ ๋ช…์˜ ์ˆ˜ํฌ์ž๊ฐ€ ๊ฐ๊ฐ ๋ฐ˜๋ณตํ•˜๋Š” ํŒจํ„ด์„ 2์ฐจ์› ๋ฐฐ์—ด๋กœ ์„ ์–ธ

int[] scores = new int[3];

์„ธ ๋ช…์˜ ์ˆ˜ํฌ์ž๊ฐ€ ๊ฐ๊ฐ์ด ๋งžํžŒ ๋ฌธ์ œ ์ˆ˜๋ฅผ ์ €์žฅํ•  ์ ์ˆ˜ ๋ฐฐ์—ด์„ ์„ ์–ธ

for (int i = 0; i < answers.length; i++) {
    for (int j = 0; j < 3; j++) {
        if (patterns[j][i % patterns[j].length] == answers[i]) {
            scores[j]++;
        }
    }
}

์ค‘์ฒฉ ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•˜์—ฌ, ๊ฐ ์ˆ˜ํฌ์ž์˜ ๋‹ต์•ˆ ํŒจํ„ด์ด ์ •๋‹ต๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์ผ์น˜ํ•˜๋ฉด ํ•ด๋‹น ์ˆ˜ํฌ์ž์˜ ์ ์ˆ˜๋ฅผ ์ฆ๊ฐ€์‹œํ‚ด
์˜ˆ๋ฅผ๋“ค์–ด, ๋‘ ๋ฒˆ์จฐ ์ˆ˜ํฌ์ž์˜ ํŒจ๋„ก์€ {2,1,2,3,2,4,2,5}๋กœ ๊ธธ์ด๊ฐ€ 8์ด๋ฉฐ, i % patterns[1].length๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉด, i๋ฅผ 8๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฏ€๋กœ, ์ด ๊ฐ’์€ 0,1,2,3,4,5,6,7,0,1,2,3,4,5,6,7... ์ˆœ์„œ๋กœ ๋ณ€ํ•จ

int maxScore = Math.max(scores[0], Math.max(scores[1], scores[2]));

์„ธ ๋ช…์˜ ์ˆ˜ํฌ์ž ์ค‘ ๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ์ฐพ์Œ

ArrayList<Integer> winners = new ArrayList<>();
for (int i = 0; i < 3; i++) {
    if (scores[i] == maxScore) {
        winners.add(i + 1);
    }
}

๊ฐ€์žฅ ๋†’์€ ์ ์ˆ˜๋ฅผ ์–ป์€ ์ˆ˜ํฌ์ž์˜ ๋ฒˆํ˜ธ๋ฅผ ArraysList<Integer>์— ์ €์žฅ, ์—ฌ๊ธฐ์„œ i + 1์€ ์ˆ˜ํฌ์ž์˜ ๋ฒˆํ˜ธ๋ฅผ ํƒ€๋‚˜๋ƒ„ (index๋Š” 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ณ  ์ˆ˜ํฌ์ž ๋ฒˆํ˜ธ๋Š” 1๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ธฐ๋–„๋ฌธ์—)

Collections.sort(winners);

์ €์žฅ๋œ ์ˆ˜ํฌ์ž๋“ค์˜ ๋ฒˆํ˜ธ๋ฅผ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ

int[] answer = new int[winners.size()];
int cnt = 0;
for(Integer a : winners) {
	answer[cnt++] = a;
}

intํ˜• ๋ฐฐ์—ด answer์— winners์˜ ๋ชจ๋“  ์š”์†Œ๋ฅผ ์ €์žฅ


๋ช…์˜ˆ์˜ ์ „๋‹น (1)

๐Ÿ“‘ ๋ฌธ3) "๋ช…์˜ˆ์˜ ์ „๋‹น"์ด๋ผ๋Š” TV ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ๋งค์ผ 1๋ช…์˜ ๊ฐ€์ˆ˜๊ฐ€ ๋…ธ๋ž˜๋ฅผ ๋ถ€๋ฅด๊ณ , ์‹œ์ฒญ์ž๋“ค์˜ ๋ฌธ์ž ํˆฌํ‘œ์ˆ˜๋กœ ๊ฐ€์ˆ˜์—๊ฒŒ ์ ์ˆ˜๋ฅผ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค. ๋งค์ผ ์ถœ์—ฐํ•œ ๊ฐ€์ˆ˜์˜ ์ ์ˆ˜๊ฐ€ ์ง€๊ธˆ๊นŒ์ง€ ์ถœ์—ฐ ๊ฐ€์ˆ˜๋“ค์˜ ์ ์ˆ˜ ์ค‘ ์ƒ์œ„ k๋ฒˆ์งธ ์ด๋‚ด์ด๋ฉด ํ•ด๋‹น ๊ฐ€์ˆ˜์˜ ์ ์ˆ˜๋ฅผ ๋ช…์˜ˆ์˜ ์ „๋‹น์ด๋ผ๋Š” ๋ชฉ๋ก์— ์˜ฌ๋ ค ๊ธฐ๋…ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰ ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘ ์ดํ›„ ์ดˆ๊ธฐ์— k์ผ๊นŒ์ง€๋Š” ๋ชจ๋“  ์ถœ์—ฐ ๊ฐ€์ˆ˜์˜ ์ ์ˆ˜๊ฐ€ ๋ช…์˜ˆ์˜ ์ „๋‹น์— ์˜ค๋ฅด๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. k์ผ ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ์ถœ์—ฐ ๊ฐ€์ˆ˜์˜ ์ ์ˆ˜๊ฐ€ ๊ธฐ์กด์˜ ๋ช…์˜ˆ์˜ ์ „๋‹น ๋ชฉ๋ก์˜ k๋ฒˆ์งธ ์ˆœ์œ„์˜ ๊ฐ€์ˆ˜ ์ ์ˆ˜๋ณด๋‹ค ๋” ๋†’์œผ๋ฉด, ์ถœ์—ฐ ๊ฐ€์ˆ˜์˜ ์ ์ˆ˜๊ฐ€ ๋ช…์˜ˆ์˜ ์ „๋‹น์— ์˜ค๋ฅด๊ฒŒ ๋˜๊ณ  ๊ธฐ์กด์˜ k๋ฒˆ์งธ ์ˆœ์œ„์˜ ์ ์ˆ˜๋Š” ๋ช…์˜ˆ์˜ ์ „๋‹น์—์„œ ๋‚ด๋ ค์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

์ด ํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ๋งค์ผ "๋ช…์˜ˆ์˜ ์ „๋‹น"์˜ ์ตœํ•˜์œ„ ์ ์ˆ˜๋ฅผ ๋ฐœํ‘œํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, k = 3์ด๊ณ , 7์ผ ๋™์•ˆ ์ง„ํ–‰๋œ ๊ฐ€์ˆ˜์˜ ์ ์ˆ˜๊ฐ€ [10, 100, 20, 150, 1, 100, 200]์ด๋ผ๋ฉด, ๋ช…์˜ˆ์˜ ์ „๋‹น์—์„œ ๋ฐœํ‘œ๋œ ์ ์ˆ˜๋Š” ์•„๋ž˜์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด [10, 10, 10, 20, 20, 100, 100]์ž…๋‹ˆ๋‹ค.

๋ช…์˜ˆ์˜ ์ „๋‹น ๋ชฉ๋ก์˜ ์ ์ˆ˜์˜ ๊ฐœ์ˆ˜ k, 1์ผ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰ ๋‚ ๊นŒ์ง€ ์ถœ์—ฐํ•œ ๊ฐ€์ˆ˜๋“ค์˜ ์ ์ˆ˜์ธ score๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๋งค์ผ ๋ฐœํ‘œ๋œ ๋ช…์˜ˆ์˜ ์ „๋‹น์˜ ์ตœํ•˜์œ„ ์ ์ˆ˜๋ฅผ returnํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


์ œํ•œ์‚ฌํ•ญ

  • 3 โ‰ค k โ‰ค 100
  • 7 โ‰ค score์˜ ๊ธธ์ด โ‰ค 1,000
    • 0 โ‰ค score[i] โ‰ค 2,000

์ž…์ถœ๋ ฅ ์˜ˆ

kscoreresult
3[10, 100, 20, 150, 1, 100, 200][10, 10, 10, 20, 20, 100, 100]
4[0, 300, 40, 300, 20, 70, 150, 50, 500, 1000][0, 0, 0, 0, 20, 40, 70, 70, 150, 300]

๋‚˜์˜ ํ’€์ด

package programmers;

import java.util.ArrayList;
import java.util.Collections;

public class HallOfFame {
	
	public static int[] solution(int k, int[] score) {
		
        int[] answer = new int[score.length];
        ArrayList<Integer> temp = new ArrayList<>();
        int cnt = 0;
        
        for(int i = 1;  i <= score.length; i++) {
        	for(int j = cnt; j < i; j++) {
        		cnt++;
        		temp.add(score[i-1]);
        		if(temp.size() > k) {
        			int minIndex = temp.indexOf(Collections.min(temp));
        			temp.remove(minIndex);
        			
        		}
        		
        	}
        	answer[i-1] = Collections.min(temp);
        
        }
        
       
        return answer;
    }
	
	public static void main(String[] args) {
		solution(4, new int[] {0,300,40,300,20,70,150,50,500,1000});
	}

}

๋‚˜์˜ ์ƒ๊ฐ

๋ฐฐ์—ด์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ€๋ณ€์ ์œผ๋กœ ๋ณ€ํ•˜๊ธฐ๋•Œ๋ฌธ์— intํ˜• ๋ฐฐ์—ด๋กœ ์žก์„๊ฒƒ์ด ์•„๋‹ˆ๋ผ, List๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€๋ณ€์ ์œผ๋กœ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ํ• ๋‹นํ•  ์ˆ˜ ์žˆ๋„๋กํ•˜์˜€๋‹ค.

List์˜ ํฌ๊ธฐ๊ฐ€ k ๋ณด๋‹ค ํฌ๋ฉด, temp List์—์„œ ์ตœ์†Œ๊ฐ’์— ํ•ด๋‹นํ•˜๋Š” index๋ฅผ ์ฐพ์•„, temp.remove() ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ตœ์†Œ๊ฐ’์„ ์ œ๊ฑฐํ•˜๊ณ  ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ k๋กœ ๋งž์ถ”๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ , for๋ฌธ์„ ์ˆœํšŒํ•˜๋ฉฐ, ํ•ด๋‹น temp์— ๋“  ์ตœ์†Œ๊ฐ’์„ ์ฐพ์•„ int[] answer์— ์ถ”๊ฐ€ํ•˜์—ฌ ๋ฆฌํ„ดํ•˜์˜€๋‹ค.


PriorityQueue๋ฅผ ์‚ฌ์šฉํ•œ ๋ฐฉ๋ฒ•

package programmers;

import java.util.Arrays;
import java.util.PriorityQueue;

public class HallOfFame {
	
	public static int[] solution(int k, int[] score) {
		
        int[] answer = new int[score.length];
        PriorityQueue<Integer>pq = new PriorityQueue<>();
        
        
        for(int i = 0; i < score.length; i++) {
        	pq.offer(score[i]);
        	if(pq.size() > k) {
        		pq.poll();
        	}
        	answer[i] = pq.peek();
        }
        System.out.println(Arrays.toString(answer));
       
        return answer;
    }
	
	public static void main(String[] args) {
		solution(4, new int[] {0,300,40,300,20,70,150,50,500,1000});
	}

}

๊ฒฐ๊ณผ


ํฐ์ผ“๋ชฌ

๐Ÿ“‘ ๋ฌธ4) ๋‹น์‹ ์€ ํฐ์ผ“๋ชฌ์„ ์žก๊ธฐ ์œ„ํ•œ ์˜ค๋žœ ์—ฌํ–‰ ๋์—, ํ™ ๋ฐ•์‚ฌ๋‹˜์˜ ์—ฐ๊ตฌ์‹ค์— ๋„์ฐฉํ–ˆ์Šต๋‹ˆ๋‹ค. ํ™ ๋ฐ•์‚ฌ๋‹˜์€ ๋‹น์‹ ์—๊ฒŒ ์ž์‹ ์˜ ์—ฐ๊ตฌ์‹ค์— ์žˆ๋Š” ์ด N ๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ ์ค‘์—์„œ N/2๋งˆ๋ฆฌ๋ฅผ ๊ฐ€์ ธ๊ฐ€๋„ ์ข‹๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.
ํ™ ๋ฐ•์‚ฌ๋‹˜ ์—ฐ๊ตฌ์‹ค์˜ ํฐ์ผ“๋ชฌ์€ ์ข…๋ฅ˜์— ๋”ฐ๋ผ ๋ฒˆํ˜ธ๋ฅผ ๋ถ™์—ฌ ๊ตฌ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ™์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์€ ๊ฐ™์€ ๋ฒˆํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฐ๊ตฌ์‹ค์— ์ด 4๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ์ด ์žˆ๊ณ , ๊ฐ ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๊ฐ€ [3๋ฒˆ, 1๋ฒˆ, 2๋ฒˆ, 3๋ฒˆ]์ด๋ผ๋ฉด ์ด๋Š” 3๋ฒˆ ํฐ์ผ“๋ชฌ ๋‘ ๋งˆ๋ฆฌ, 1๋ฒˆ ํฐ์ผ“๋ชฌ ํ•œ ๋งˆ๋ฆฌ, 2๋ฒˆ ํฐ์ผ“๋ชฌ ํ•œ ๋งˆ๋ฆฌ๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๋•Œ, 4๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ ์ค‘ 2๋งˆ๋ฆฌ๋ฅผ ๊ณ ๋ฅด๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 6๊ฐ€์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ฒซ ๋ฒˆ์งธ(3๋ฒˆ), ๋‘ ๋ฒˆ์งธ(1๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
  2. ์ฒซ ๋ฒˆ์งธ(3๋ฒˆ), ์„ธ ๋ฒˆ์งธ(2๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
  3. ์ฒซ ๋ฒˆ์งธ(3๋ฒˆ), ๋„ค ๋ฒˆ์งธ(3๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
  4. ๋‘ ๋ฒˆ์งธ(1๋ฒˆ), ์„ธ ๋ฒˆ์งธ(2๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
  5. ๋‘ ๋ฒˆ์งธ(1๋ฒˆ), ๋„ค ๋ฒˆ์งธ(3๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ
  6. ์„ธ ๋ฒˆ์งธ(2๋ฒˆ), ๋„ค ๋ฒˆ์งธ(3๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒ

์ด๋•Œ, ์ฒซ ๋ฒˆ์งธ(3๋ฒˆ) ํฐ์ผ“๋ชฌ๊ณผ ๋„ค ๋ฒˆ์งธ(3๋ฒˆ) ํฐ์ผ“๋ชฌ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํ•œ ์ข…๋ฅ˜(3๋ฒˆ ํฐ์ผ“๋ชฌ ๋‘ ๋งˆ๋ฆฌ)์˜ ํฐ์ผ“๋ชฌ๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•๋“ค์€ ๋ชจ๋‘ ๋‘ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์œ„ ์˜ˆ์‹œ์—์„œ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜ ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’์€ 2๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.
๋‹น์‹ ์€ ์ตœ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ๊ฐ€์ง€๊ธธ ์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ์ตœ๋Œ€ํ•œ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ํฌํ•จํ•ด์„œ N/2๋งˆ๋ฆฌ๋ฅผ ์„ ํƒํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. N๋งˆ๋ฆฌ ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด nums๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, N/2๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘, ๊ฐ€์žฅ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„, ๊ทธ๋•Œ์˜ ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


์ œํ•œ์‚ฌํ•ญ

  • nums๋Š” ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๊ฐ€ ๋‹ด๊ธด 1์ฐจ์› ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.
  • nums์˜ ๊ธธ์ด(N)๋Š” 1 ์ด์ƒ 10,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ด๋ฉฐ, ํ•ญ์ƒ ์ง์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค.
  • ํฐ์ผ“๋ชฌ์˜ ์ข…๋ฅ˜ ๋ฒˆํ˜ธ๋Š” 1 ์ด์ƒ 200,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜๋กœ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  • ๊ฐ€์žฅ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ์„ ํƒํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์—ฌ๋Ÿฌ ๊ฐ€์ง€์ธ ๊ฒฝ์šฐ์—๋„, ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜ ๊ฐœ์ˆ˜์˜ ์ตœ๋Œ“๊ฐ’ ํ•˜๋‚˜๋งŒ return ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

numsresult
[3,1,2,3]2
[3,3,3,2,2,4]3
[3,3,3,2,2,2]2

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #2

6๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ์ด ์žˆ์œผ๋ฏ€๋กœ, 3๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ์„ ๊ณจ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€์žฅ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ๊ณ ๋ฅด๊ธฐ ์œ„ํ•ด์„œ๋Š” 3๋ฒˆ ํฐ์ผ“๋ชฌ ํ•œ ๋งˆ๋ฆฌ, 2๋ฒˆ ํฐ์ผ“๋ชฌ ํ•œ ๋งˆ๋ฆฌ, 4๋ฒˆ ํฐ์ผ“๋ชฌ ํ•œ ๋งˆ๋ฆฌ๋ฅผ ๊ณ ๋ฅด๋ฉด ๋˜๋ฉฐ, ๋”ฐ๋ผ์„œ 3์„ return ํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #3

6๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ์ด ์žˆ์œผ๋ฏ€๋กœ, 3๋งˆ๋ฆฌ์˜ ํฐ์ผ“๋ชฌ์„ ๊ณจ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค.
๊ฐ€์žฅ ๋งŽ์€ ์ข…๋ฅ˜์˜ ํฐ์ผ“๋ชฌ์„ ๊ณ ๋ฅด๊ธฐ ์œ„ํ•ด์„œ๋Š” 3๋ฒˆ ํฐ์ผ“๋ชฌ ํ•œ ๋งˆ๋ฆฌ์™€ 2๋ฒˆ ํฐ์ผ“๋ชฌ ๋‘ ๋งˆ๋ฆฌ๋ฅผ ๊ณ ๋ฅด๊ฑฐ๋‚˜, ํ˜น์€ 3๋ฒˆ ํฐ์ผ“๋ชฌ ๋‘ ๋งˆ๋ฆฌ์™€ 2๋ฒˆ ํฐ์ผ“๋ชฌ ํ•œ ๋งˆ๋ฆฌ๋ฅผ ๊ณ ๋ฅด๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ๋Œ€ ๊ณ ๋ฅผ ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜์˜ ์ˆ˜๋Š” 2์ž…๋‹ˆ๋‹ค.


๋‚˜์˜ ํ’€์ด

package programmers;

import java.util.HashSet;
import java.util.Set;

public class Pokemon {
	
	public static int solution(int[] nums) {
        Set<Integer> phonekemon = new HashSet<>();
        
        for(int i = 0; i< nums.length; i++) {
        	phonekemon.add(nums[i]);
        }
        
        int answer = (nums.length / 2) ;
        
        if(answer > phonekemon.size()) {
        	answer = phonekemon.size();
        }
        
        System.out.println(answer);
        return answer;
    }
	
	public static void main(String[] args) {
		solution(new int[] {3,3,3,2,2,2});
	}

}

๋‚˜์˜ ์ƒ๊ฐ

ํ™๋ฐ•์‚ฌ์—๊ฒŒ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ์˜ ๊ฐœ์ˆ˜๋Š” int[] ๋ฐฐ์—ด์˜ nums์˜ ํฌ๊ธฐ์˜ 1/2์ด๊ณ , hashSet๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋งค๊ฐœ๋ณ€์ˆ˜ nums์˜ ๊ฐ’๋“ค์„ ๋„ฃ๊ณ , ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  answer์˜ ๊ธธ์ด์™€ hashSet์˜ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜์—ฌ ์ž‘์€ ๊ฐ’์„ answer์˜ ๊ฐ’์œผ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค. ์ฆ‰, HashSet์„ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘๋ณต๋œ ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜๋ฅผ ์ œ๊ฑฐํ•˜๊ณ , ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ํฐ์ผ“๋ชฌ ์ข…๋ฅ˜์˜ ์ตœ๋Œ€ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.


๊ณผ์ผ ์žฅ์ˆ˜

๐Ÿ“‘ ๋ฌธ5) ๊ณผ์ผ ์žฅ์ˆ˜๊ฐ€ ์‚ฌ๊ณผ ์ƒ์ž๋ฅผ ํฌ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๊ณผ๋Š” ์ƒํƒœ์— ๋”ฐ๋ผ 1์ ๋ถ€ํ„ฐ k์ ๊นŒ์ง€์˜ ์ ์ˆ˜๋กœ ๋ถ„๋ฅ˜ํ•˜๋ฉฐ, k์ ์ด ์ตœ์ƒํ’ˆ์˜ ์‚ฌ๊ณผ์ด๊ณ  1์ ์ด ์ตœํ•˜ํ’ˆ์˜ ์‚ฌ๊ณผ์ž…๋‹ˆ๋‹ค. ์‚ฌ๊ณผ ํ•œ ์ƒ์ž์˜ ๊ฐ€๊ฒฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

  • ํ•œ ์ƒ์ž์— ์‚ฌ๊ณผ๋ฅผ m๊ฐœ์”ฉ ๋‹ด์•„ ํฌ์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒ์ž์— ๋‹ด๊ธด ์‚ฌ๊ณผ ์ค‘ ๊ฐ€์žฅ ๋‚ฎ์€ ์ ์ˆ˜๊ฐ€ p (1 โ‰ค p โ‰ค k)์ ์ธ ๊ฒฝ์šฐ, ์‚ฌ๊ณผ ํ•œ ์ƒ์ž์˜ ๊ฐ€๊ฒฉ์€ p * m ์ž…๋‹ˆ๋‹ค.

๊ณผ์ผ ์žฅ์ˆ˜๊ฐ€ ๊ฐ€๋Šฅํ•œ ๋งŽ์€ ์‚ฌ๊ณผ๋ฅผ ํŒ”์•˜์„ ๋•Œ, ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ด์ต์„ ๊ณ„์‚ฐํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.(์‚ฌ๊ณผ๋Š” ์ƒ์ž ๋‹จ์œ„๋กœ๋งŒ ํŒ๋งคํ•˜๋ฉฐ, ๋‚จ๋Š” ์‚ฌ๊ณผ๋Š” ๋ฒ„๋ฆฝ๋‹ˆ๋‹ค)

์˜ˆ๋ฅผ ๋“ค์–ด, k = 3, m = 4, ์‚ฌ๊ณผ 7๊ฐœ์˜ ์ ์ˆ˜๊ฐ€ [1, 2, 3, 1, 2, 3, 1]์ด๋ผ๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์ด [2, 3, 2, 3]์œผ๋กœ ๊ตฌ์„ฑ๋œ ์‚ฌ๊ณผ ์ƒ์ž 1๊ฐœ๋ฅผ ๋งŒ๋“ค์–ด ํŒ๋งคํ•˜์—ฌ ์ตœ๋Œ€ ์ด์ต์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • (์ตœ์ € ์‚ฌ๊ณผ ์ ์ˆ˜) x (ํ•œ ์ƒ์ž์— ๋‹ด๊ธด ์‚ฌ๊ณผ ๊ฐœ์ˆ˜) x (์ƒ์ž์˜ ๊ฐœ์ˆ˜) = 2 x 4 x 1 = 8

์‚ฌ๊ณผ์˜ ์ตœ๋Œ€ ์ ์ˆ˜ k, ํ•œ ์ƒ์ž์— ๋“ค์–ด๊ฐ€๋Š” ์‚ฌ๊ณผ์˜ ์ˆ˜ m, ์‚ฌ๊ณผ๋“ค์˜ ์ ์ˆ˜ score๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ๊ณผ์ผ ์žฅ์ˆ˜๊ฐ€ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์ด์ต์„ returnํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


์ œํ•œ์‚ฌํ•ญ

  • 3 โ‰ค k โ‰ค 9
  • 3 โ‰ค m โ‰ค 10
  • 7 โ‰ค score์˜ ๊ธธ์ด โ‰ค 1,000,000
    • 1 โ‰ค score[i] โ‰ค k
  • ์ด์ต์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์—๋Š” 0์„ return ํ•ด์ฃผ์„ธ์š”.

์ž…์ถœ๋ ฅ ์˜ˆ

kmscore
34[1,2,3,1,2,3,1]
43[4,1,2,2,4,4,4,4,1,2,4,2]

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์‚ฌ๊ณผ ์ƒ์ž๋ฅผ ํฌํ•จํ•˜์—ฌ ๋ชจ๋‘ ํŒ”๋ฉด ์ตœ๋Œ€ ์ด์ต์„ ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‚ฌ๊ณผ ์ƒ์ž๊ฐ€๊ฒฉ
[1, 1, 2]1 x 3 = 3
[2, 2, 2]2 x 3 = 6
[4,4,4]4 x 3 = 12
[4,4,4]4 x 3 = 12

๋”ฐ๋ผ์„œ (1 x 3 x 1) + (2 x 3 x 1) + (4 x 3 x 2) = 33์„ returnํ•ฉ๋‹ˆ๋‹ค.


๋‚˜์˜ ํ’€์ด

package programmers;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;

public class FruitSeller {
	
	public static int solution(int k, int m, int[] score) {
        
		int answer = 0;
        ArrayList<Integer> list = new ArrayList<>();

        for(int a : score) {
            list.add(a);
        }

        Collections.sort(list, Comparator.reverseOrder());

        int[] box = new int[m];
        int boxIndex = 0;

        for(int i = 0; i < list.size(); i++) {
            box[boxIndex++] = list.get(i);

            if(boxIndex == m) { 
                int min = box[0];
                for(int j = 1; j < m; j++) {
                    if(box[j] < min) {
                        min = box[j];
                    }
                }

                answer += min * m;
                boxIndex = 0; 
            }
        }
        
        System.out.println(answer);
        return answer;
    }
	
	public static void main(String[] args) {
		solution(3, 4, new int[] {1, 2, 3, 1, 2, 3, 1});
	}

}

๋‚˜์˜ ์ƒ๊ฐ

๊ณผ์ผ ์ ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ArrayList<Integer> ํƒ€์ž…์œผ๋กœ ์„ ์–ธํ•˜์—ฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง€๋Š” int[] score ๋ฅผ ํ–ฅ์ƒ๋œ for๋ฌธ์œผ๋กœ ๋ฐฐ์—ด์˜ ์š”์†Œ๋ฅผ list์— ์ถ”๊ฐ€ํ•œ๋‹ค.

Collections.sort(list, Comparator.reverseOrder()) ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜์—ฌ list๋ฅผ ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

int[] box = new int[m];
        int boxIndex = 0;

        for(int i = 0; i < list.size(); i++) {
            box[boxIndex++] = list.get(i);

            if(boxIndex == m) { 
                int min = box[0];
                for(int j = 1; j < m; j++) {
                    if(box[j] < min) {
                        min = box[j];
                    }
                }

                answer += min * m;
                boxIndex = 0; 
            }
        }

๋งŒ์•ฝ, box ๋ฐฐ์—ด์ด ์ „์ฒด์ ์œผ๋กœ ์ฑ„์›Œ์ง€๋ฉด, ๋ฐฐ์—ด์—์„œ ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ฐพ๊ณ , ์ด ๋ถ€๋ถ„์„ m์„ ๊ณฑํ•˜์—ฌ answer์— ์ถ”๊ฐ€


1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2023๋…„ 7์›” 27์ผ

๊ฐœ๋ฐœ์ž๋กœ์„œ ์„ฑ์žฅํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋œ ๊ธ€์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ