Search

๋ฐ•์€๋นˆ

2.๋ฌธ์ œ์ด๋ฆ„
3. ์ˆ˜ํ–‰์‹œ๊ฐ„[์ดˆ(s)]
600
์ข‹์•„์š” ๋ˆ„๋ฅด๊ธฐ
์ข‹์•„์š” ์ˆ˜
: 0
5 more properties
| ์ฝ”๋“œ ์ž‘์„ฑํ•˜๊ธฐ
public int solution(int[] priorities, int location) { int answer = 0; Queue<Integer> pri = new LinkedList<>(); Queue<Integer> priLoc = new LinkedList<>(); for(int i=0; i<priorities.length; i++) { pri.offer(priorities[i]); priLoc.offer(i); } Arrays.sort(priorities); //[1,2,2,3] while(true) { if(priorities[priorities.length-1-answer] == pri.peek()) { if(location == priLoc.peek()) { answer++; break; } pri.poll(); priLoc.poll(); answer++; } else { pri.offer(pri.poll()); priLoc.offer(priLoc.poll()); } } return answer; }
Java
๋ณต์‚ฌ
| ์ฝ”๋“œ ์„ค๋ช…ํ•˜๊ธฐ
์ค‘์š”๋„๊ฐ€ ์ œ์ผ ๋†’์œผ๋ฉด ๋จผ์ €๋น ์ง€๊ณ  ์ค‘์š”๋„๊ฐ€ ์ œ์ผ ๋†’์ง€ ์•Š๋‹ค๋ฉด ๋‹ค์‹œ ์ œ์ผ ๋’ค๋กœ ๋“ค์–ด๊ฐ€์•ผ๋˜๊ธฐ๋•Œ๋ฌธ์— ํ๋ฅผ ์ผ๋‹ค
[2,1,3,2]์—์„œ 2๋ฒˆ์งธ์œ„์น˜ ์ฆ‰ [3]์ด ๋ช‡๋ฒˆ์งธ์— ๋น ์ง€๋А๋ƒ๋ฅผ ๋ฌผ์–ด๋ณด๋Š”๋ฐ
[3]์€ ์ค‘์š”๋„๊ฐ€ ์ œ์ผ ๋†’๊ธฐ๋•Œ๋ฌธ์— 1๋ฒˆ์งธ๋กœ ๋น ์ง„๋‹ค
[1,1,9,1,1,1]์—์„œ 0๋ฒˆ์งธ [1]์€ ๋ช‡๋ฒˆ์งธ๋กœ ๋น ์ง€๋ƒ์ธ๋ฐ
์—ฌ๊ธฐ์„œ 9๊ฐ€ ์ œ์ผ ๋†’๊ธฐ๋•Œ๋ฌธ์— 9์•ž์—์žˆ๋Š” 1๋“ค์€ ๋‹ค์‹œ ๋’ค๋กœ ๋น ์ ธ์•ผํ•œ๋‹ค
๊ทธ๋ž˜์„œ [9,1,1,1,1,1]๊ฐ€ ๋˜๊ณ  9๊ฐ€ ๋น ์ง€๊ฒŒ ๋œ๋‹ค
[1,1,1,1,1]
๊ทธ ๋‹ค์Œ์—๋Š” ์ค‘์š”๋„๊ฐ€ ๋ชจ๋‘ ๊ฐ™๊ธฐ๋•Œ๋ฌธ์— ์ˆœ์„œ๋Œ€๋กœ ๋น ์ง€๊ฒŒ๋˜๊ณ 
์šฐ๋ฆฌ๊ฐ€ ๋ด์•ผ๋˜๋Š” 1์€ 4๋ฒˆ์งธ์— ์žˆ๊ธฐ๋•Œ๋ฌธ์— 9๊ฐ€ ๋น ์ง„ ์นด์šดํŠธ์™€ ํ•ฉ์ณ์„œ 5๊ฐ€๋œ๋‹ค
์ฝ”๋“œ์—์„œ ์ค‘์š”๋„๋ฅผ ๋จผ์ € ํ์— ๋„ฃ์€๋‹ค์Œ ์ค‘์š”๋„์— ๋Œ€ํ•œ ์œ„์น˜๋ฅผ ์•Œ์•„์•ผ๋˜๊ธฐ๋•Œ๋ฌธ์—
์œ„์น˜์— ๋Œ€ํ•œ ํ์ธ priLoc๋„ ๋งŒ๋“ค์–ด์„œ ์œ„์น˜๋ฅผ ํ์— ๋„ฃ์—ˆ๋‹ค
๊ทธ๋ฆฌ๊ณ  ์ค‘์š”๋„๋ฅผ ์ค‘์š”ํ•œ ์ˆœ๋ถ€ํ„ฐ ๋นผ์•ผ๋˜๊ธฐ๋•Œ๋ฌธ์— sort๋ฅผ ์ด์šฉํ•ด ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜๊ณ 
์ตœ๋Œ€๊ฐ’ ์ฆ‰ lenght-1๋ถ€ํ„ฐ ๋ฐฐ์—ด์„ ์‹œ์ž‘ํ•ด ์ค‘์š”๋„๊ฐ€ ์ œ์ผ ๋†’์€ ๊ฐ’๋ถ€ํ„ฐ ๋บ„์ˆ˜ ์žˆ๊ฒŒ ํ–ˆ๋‹ค
ํ์—์„œ input์—์„œ ์ฃผ์–ด์ง„ ์œ„์น˜์™€ ๊ฐ™์€ ์œ„์น˜๊ฐ’์ด poll๋˜๋Š” ์‹œ์ ์ด ๋‚˜๊ฐ€๋Š” ์‹œ์ ์ด๊ณ 
๊ทธ ์‹œ์ ์€ ์–ธ์ œ ์˜ฌ์ง€ ๋ชจ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌดํ•œ๋ฃจํ”„๋ฅผ ์ฃผ์—ˆ๋‹ค
while๋ฌธ ์•ˆ์—์„œ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ๋œ priorities์—์„œ ์ œ์ผ ํฐ ์ˆ˜๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด peek์„ ์ด์šฉํ•ด ๋น„๊ต๋ฅผ ํ•˜์˜€๋‹ค
๋ฐ˜์•ฝ ๋น„๊ตํ•ด์„œ ๊ฐ™์„๊ฒฝ์šฐ ๊ทธ ์•ˆ์—์„œ location๊ณผ ํ์˜ priLoc์„ ๋น„๊ตํ•ด ๊ทธ๊ฒƒ๋„ ๊ฐ™์œผ๋ฉด ์šฐ๋ฆฌ๊ฐ€ ์ฐพ๋Š” ๊ฐ’์ด ๋‚˜๊ฐ€๋Š” ์ง€์ ์ด๊ธฐ๋•Œ๋ฌธ์— answer++์„ ํ•˜๊ณ  break๋ฅผ ํ•ด์ฃผ์—ˆ๋‹ค
๊ทธ๊ฒŒ ์•„๋‹๊ฒฝ์šฐ ์šฐ๋ฆฌ๊ฐ€ ์ฐพ๋Š” ๊ฐ’๋ณด๋‹ค ๋” ํฐ ์ค‘์š”๋„์˜ ๊ฐ’์ด ๋‚˜๊ฐ€๋Š” ๊ฒƒ์ด๊ธฐ๋•Œ๋ฌธ์— ๊ทธ ๊ฐ’์€ poll๋กœ ๋นผ์ฃผ๊ณ  ๊ทธ ๊ฐ’์—๋Œ€ํ•œ ์œ„์น˜๊ฐ’ priLoc๋„ pollํ•ด์ฃผ์—ˆ๋‹ค
์ค‘์š”๋„์™€ peek์ด ๊ฐ™์ง€ ์•Š๋‹ค๋ฉด ๋งจ ๋’ค๋กœ ๋„˜๊ฒจ์•ผ๋˜๊ธฐ ๋•Œ๋ฌธ์—
pollํ•จ๊ณผ ๋™์‹œ์— offer๋ฅผ ํ•ด์ฃผ์–ด์„œ ๋‹ค์‹œ ํ์— ๋„ฃ์–ด์ฃผ์—ˆ๋‹ค