ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

ํ”„๋ฆฐํ„ฐ


๋ฌธ์ œ ์„ค๋ช…

์ผ๋ฐ˜์ ์ธ ํ”„๋ฆฐํ„ฐ๋Š” ์ธ์‡„ ์š”์ฒญ์ด ๋“ค์–ด์˜จ ์ˆœ์„œ๋Œ€๋กœ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•œ ๋ฌธ์„œ๊ฐ€ ๋‚˜์ค‘์— ์ธ์‡„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์ค‘์š”๋„๊ฐ€ ๋†’์€ ๋ฌธ์„œ๋ฅผ ๋จผ์ € ์ธ์‡„ํ•˜๋Š” ํ”„๋ฆฐํ„ฐ๋ฅผ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒˆ๋กญ๊ฒŒ ๊ฐœ๋ฐœํ•œ ํ”„๋ฆฐํ„ฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ธ์‡„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.


1. ์ธ์‡„ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ๋ฌธ์„œ(J)๋ฅผ ๋Œ€๊ธฐ๋ชฉ๋ก์—์„œ ๊บผ๋ƒ…๋‹ˆ๋‹ค.
2. ๋‚˜๋จธ์ง€ ์ธ์‡„ ๋Œ€๊ธฐ๋ชฉ๋ก์—์„œ J๋ณด๋‹ค ์ค‘์š”๋„๊ฐ€ ๋†’์€ ๋ฌธ์„œ๊ฐ€ ํ•œ ๊ฐœ๋ผ๋„ ์กด์žฌํ•˜๋ฉด J๋ฅผ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ๊ฐ€์žฅ ๋งˆ์ง€๋ง‰์— ๋„ฃ์Šต๋‹ˆ๋‹ค.
3. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด J๋ฅผ ์ธ์‡„ํ•ฉ๋‹ˆ๋‹ค.


์˜ˆ๋ฅผ ๋“ค์–ด, 4๊ฐœ์˜ ๋ฌธ์„œ(A, B, C, D)๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ์ธ์‡„ ๋Œ€๊ธฐ๋ชฉ๋ก์— ์žˆ๊ณ  ์ค‘์š”๋„๊ฐ€ 2 1 3 2 ๋ผ๋ฉด C D A B ์ˆœ์œผ๋กœ ์ธ์‡„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 

๋‚ด๊ฐ€ ์ธ์‡„๋ฅผ ์š”์ฒญํ•œ ๋ฌธ์„œ๊ฐ€ ๋ช‡ ๋ฒˆ์งธ๋กœ ์ธ์‡„๋˜๋Š”์ง€ ์•Œ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ์œ„์˜ ์˜ˆ์—์„œ C๋Š” 1๋ฒˆ์งธ๋กœ, A๋Š” 3๋ฒˆ์งธ๋กœ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค. 

ํ˜„์žฌ ๋Œ€๊ธฐ๋ชฉ๋ก์— ์žˆ๋Š” ๋ฌธ์„œ์˜ ์ค‘์š”๋„๊ฐ€ ์ˆœ์„œ๋Œ€๋กœ ๋‹ด๊ธด ๋ฐฐ์—ด priorities์™€ ๋‚ด๊ฐ€ ์ธ์‡„๋ฅผ ์š”์ฒญํ•œ ๋ฌธ์„œ๊ฐ€ ํ˜„์žฌ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ์–ด๋–ค ์œ„์น˜์— ์žˆ๋Š”์ง€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” location์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ๋‚ด๊ฐ€ ์ธ์‡„๋ฅผ ์š”์ฒญํ•œ ๋ฌธ์„œ๊ฐ€ ๋ช‡ ๋ฒˆ์งธ๋กœ ์ธ์‡„๋˜๋Š”์ง€ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ์‚ฌํ•ญ
  • ํ˜„์žฌ ๋Œ€๊ธฐ๋ชฉ๋ก์—๋Š” 1๊ฐœ ์ด์ƒ 100๊ฐœ ์ดํ•˜์˜ ๋ฌธ์„œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ธ์‡„ ์ž‘์—…์˜ ์ค‘์š”๋„๋Š” 1~9๋กœ ํ‘œํ˜„ํ•˜๋ฉฐ ์ˆซ์ž๊ฐ€ ํด์ˆ˜๋ก ์ค‘์š”ํ•˜๋‹ค๋Š” ๋œป์ž…๋‹ˆ๋‹ค.
  • location์€ 0 ์ด์ƒ (ํ˜„์žฌ ๋Œ€๊ธฐ๋ชฉ๋ก์— ์žˆ๋Š” ์ž‘์—… ์ˆ˜ - 1) ์ดํ•˜์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ๊ฐ€์žฅ ์•ž์— ์žˆ์œผ๋ฉด 0, ๋‘ ๋ฒˆ์งธ์— ์žˆ์œผ๋ฉด 1๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.
์ž…์ถœ๋ ฅ ์˜ˆ
prioritieslocationreturn
[2, 1, 3, 2]21
[1, 1, 9, 1, 1, 1]0

5



ํ”„๋ฆฐํ„ฐ์˜ ๋™์ž‘๋ฐฉ์‹์„ ๋ณด๋‹ˆ ํ˜„์žฌ ์ฒ˜๋ฆฌ ํ•˜๋ ค๋Š” ์ž‘์—…์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์ง€ ์•Š๋‹ค๋ฉด ์ง€๊ธˆ ์ฒ˜๋ฆฌ ํ•˜๋ ค๋Š” ์ผ์€ ๋งจ ๋’ค๋กœ ๋‹ค์‹œ ๋Œ๋ ค๋ฒ„๋ฆฝ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„์˜ ์ผ์ด ๋‚˜์˜ฌ ๋•Œ๊นŒ์ง€ ์ด ์ž‘์—…์„ ๊ณ„์† ๋ฐ˜๋ณตํ•˜๊ฒŒ ๋˜์ฃ . ํ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํŠน์ง•์ž…๋‹ˆ๋‹ค.


ํ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ํŠน์ง•์„ ์ด์šฉํ•˜์—ฌ ์ฝ”๋“œ๋กœ ํ•œ ๋ฒˆ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

function solution(priorities, location) {
	let answer = 0;
	let tasks = priorities.map((v,i)=>({	
		lo : i === location,	
		val: v					
	}));
	/*
		๊ธฐ์กด์˜ ๋ฐฐ์—ดํ˜•ํƒœ์—์„œ ํ˜„์žฌ ์œ„์น˜ํ•˜๊ณ ์žˆ๋Š” ์ธ๋ฑ์Šค์ •๋ณด๋ฅผ ๊ฐ™์ด ๊ฐ–๊ณ ์žˆ๋Š” ๊ฐ์ฒด๋กœ ์ €์žฅ
		location์€ ํ˜„์žฌ ๋Œ€๊ธฐ๋ชฉ๋ก์˜ ์œ„์น˜ ์—ฌ๊ธฐ ์˜ˆ์ œ์—์„œ๋Š” ๋ฐฐ์—ด์˜ 3๋ฒˆ์งธ ๊ฐ’.
	 [ 
	 	{ lo: false, val: 2 },
  	 	{ lo: false, val: 1 },
  	 	{ lo: true, val: 3 },
	 	{ lo: false, val: 2 } 
	 ]
	*/
	while(true){
		let cur = tasks.splice(0,1)[0];			//ํ˜„์žฌ ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ผ์„ ๋นผ๋‚ธ๋‹ค. splice ๋ฉ”์„œ๋“œ๋Š” ์›๋ณธ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ๋ฐ”๊ฟˆ.
		if(tasks.some(t=>t.val > cur.val)){		//ํ˜„์žฌ ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ผ๋ณด๋‹ค ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„์˜ ์ผ์ด ์žˆ๋Š”์ง€ ๋น„๊ต
			tasks.push(cur);					//๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์กด์žฌํ•  ๋•Œ, ํ˜„์žฌ ํ•˜๊ณ ์ž ํ•˜๋Š” ์ผ์€ ๋งจ ๋’ค๋กœ ๋ฐ€์–ด๋‘ .
		}
		else {									//ํ˜„์žฌ ํ•˜๊ณ ์ž ํ•˜๋Š” ์ผ์ด ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„์ผ ๋•Œ
			answer++;							//answer ๊ฐ’์— +1์„ ํ•œ๋‹ค.(์ธ์‡„์ˆœ์„œ๋ฅผ ์นด์šดํŠธ)
			if(cur.lo) return answer;			//๊ทธ ์ผ์ด ๋ฌธ์ œ์—์„œ ํ˜„์žฌ ์œ„์น˜๋กœ ์ฃผ์–ด์ง„ ๋ถ€๋ถ„์ผ ๋•Œ answer ๊ฐ’์„ ๋ฆฌํ„ด.
		}
	}
}

let priorities = [2, 1, 3, 2];
let location = 2;

console.log( solution(priorities,location) ) ;		//1

๊ฐ€์žฅ ์ฒ˜์Œ์—๋Š” ์›๋ž˜ ์ฃผ์–ด์ง„ ๋ฐฐ์—ด priorities ๋ฅผ ํ˜„์žฌ ์œ„์น˜์ •๋ณด๋ฅผ ๋‹ด๊ณ ์žˆ๋Š” ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. location ๊ฐ’์„ 2๋ฅผ ์ฃผ์—ˆ์œผ๋‹ˆ ์—ฌ๊ธฐ์„œ๋Š” ์„ธ ๋ฒˆ์งธ ์ธ๋ฑ์Šค์˜ ๋ฐฐ์—ด์— true๊ฐ€ ๋“ค์–ด๊ฐ€๊ณ  ๋‚˜๋จธ์ง„ false๊ฐ€ ๋“ค์–ด๊ฐˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


๊ทธ๋ฆฌ๊ณค ๋ฐ˜๋ณต๋ฌธ์„ ๋งŒ๋‚˜๊ฒŒ๋˜๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ๊ฑด splice ๋‚ด์žฅํ•จ์ˆ˜๋ฅผ ์จ์„œ ๋น„๊ต๋ฅผ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ๋ฉด push ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์›๋ณธ ๋ฐฐ์—ด์— ๋‹ค์‹œ ์ €์žฅ์„ ํ•  ๊ฑด๋ฐ, splice๋ฅผ ์“ฐ์ง€ ์•Š์œผ๋ฉด push๋ฅผ ํ•˜๊ฒŒ ๋  ๋•Œ ์›๋ณธ ๋ฐฐ์—ด์ด ๊ณ„์† ๋Š˜์–ด๋‚˜๊ฒŒ ๋˜๊ฒ ์ฃ . splice์— ๋Œ€ํ•œ ์„ค๋ช…์€ MDN์„ ์ฐธ๊ณ ํ•˜์‹œ๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค. 


while๋ฌธ์˜ ์ข…๋ฃŒ์กฐ๊ฑด์€ ํ˜„์žฌ ์ฒ˜๋ฆฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ผ์ด ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„์ด๋ฉด์„œ, ๋ฌธ์ œ์—์„œ ์ฃผ์–ด์ง„ location๊ณผ ์ผ์น˜ํ•  ๋•Œ ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ์˜ ์˜ˆ์‹œ์—์„œ๋Š” ์ฃผ์–ด์ง„ location ์ •๋ณด๊ฐ€ 2๋‹ˆ๊น priorities[2]์˜ ๊ฐ’ ์ฆ‰, 3์„ ์˜๋ฏธํ•˜๋ฉฐ ๊ฐ€์žฅ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ˜๋ณต๋ฌธ์„ ํ•œ ๋ฒˆ๋งŒ ๋Œ๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2024/05   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ