๋ฑ€

โ€ผ๏ธ๋””๋ฒ„๊น…ํ•  ๋•Œ ์†์œผ๋กœ ์ˆ˜์‹ญ๊ฐœ ๋ฐฐ์—ด ๊ทธ๋ ค๊ฐ€๋ฉด์„œ ํ•˜์ง€๋ง๊ณ  ์Šค๋งˆํŠธํ•˜๊ฒŒ ํ•˜์ž~! ์—๋””ํ„ฐ ๋””๋ฒ„๊น… ๋Œ๋ฆฌ๊ธฐ!!! ์‹ค์ œ ์‹œํ—˜์žฅ ๊ฐ€์„œ๋„ ์˜ค๋‹ต ๋‚˜์˜ฌ ๊ฒฝ์šฐ, ์ˆ˜์ž‘์—…์œผ๋กœ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ทธ๋ ค๊ฐ€๋ฉด์„œ ํ•  ์ˆ˜ ์—†๋‹ค!!!

ํ‹€๋ฆฐ ์ด์œ 

  1. ์‹œ๊ฐ„ ์ฆ๊ฐ€ ์ „ ํ›„ ์—ฐ์‚ฐ ์ˆœ์„œ

  2. ๋ฑ€์ด ์ด๋™ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋จธ๋ฆฌ ์œ„์น˜๋งŒ ์ €์žฅํ•ด๋ฒ„๋ฆผ.=>"๊ผฌ๋ฆฌ ์œ„์น˜" ์ •๋ณด ์ €์žฅ ํ•„์š”์„ฑ ๋ชป ๋А๋‚Œ..

  3. ๋ฐฉํ–ฅ ์ •๋ณด ์ €์žฅ ์ž๋ฃŒ๊ตฌ์กฐ : ์ปฌ๋ ‰์…˜์€ ๋ถ€์ ์ ˆํ•œ ๋“ฏํ•˜๋‹ค

  4. ๋‹ค์Œ ์ด๋™ ์ขŒํ‘œ๊ฐ€ ๋ฒฝ์ธ์ง€, ๋ฑ€์ธ์ง€ ํ™•์ธํ•  ๋•Œ ์กฐ๊ฑด ๊ฒ€์‚ฌ ์ˆœ์„œ ์ค‘์š”!!!!โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ => ๋ฒฝ์ผ ๋•Œ : (nx,ny) ๋Š” ๋ฒ”์œ„ ์ดˆ๊ณผ! => ๋ฑ€์ผ ๋•Œ : Map[nx][ny] == 1 (nx,ny)๊ฐ€ ๋ฒ”์œ„ ์ดˆ๊ณผ์ธ๋ฐ Map[nx][ny] == 1 ์กฐ๊ฑด์„ ๋จผ์ € ํ•ด๋ฒ„๋ฆฌ๋ฉด ๋‹น์—ฐํžˆ ๋ฐฐ์—ด ๋ฒ”์œ„ ์ดˆ๊ณผ ์—๋Ÿฌ๊ฐ€ ๋‚œ๋‹ค!!! ๊ทธ๋ž˜์„œ ๋ฒ”์œ„ ์ฒดํฌ๋ฅผ ํ•„์ˆ˜์ ์œผ๋กœ ๋จผ์ € ํ•ด์ฃผ๊ณ , Map ๊ฐ’ ์ฒดํฌ๋ฅผ ํ•ด์ค˜์•ผํ•œ๋‹ค! ์ •๋‹ต ์ฝ”๋“œ์—์„œ๋Š” 2๊ฐœ์˜ if๋ฌธ์œผ๋กœ ๋ฒ”์œ„ ์ฒดํฌ๋ฅผ ๋จผ์ € ํ•ด์ฃผ์—ˆ๋‹ค. ๋‚ด ์ฝ”๋“œ์—์„œ๋Š” ํ•˜๋‚˜์˜ if๋ฌธ ๋‚ด์—์„œ Map๊ฐ’๊ณผ ๋ฒ”์œ„ ์ฒดํฌ ์กฐ๊ฑด ๊ฒ€์‚ฌ๋ฅผ OR(||)๋กœ ํ•œ๋ฒˆ์— ํ•ด์ฃผ์—ˆ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ํ‹€๋ ธ๋‹ค! ์œ„์™€ ๊ฐ™์€ ์ด์œ ๋กœ, ํ•˜๋‚˜์˜ if๋ฌธ์—์„œ OR์กฐ๊ฑด์œผ๋กœ ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ๊ฒ€์‚ฌํ•˜๋”๋ผ๋„ ๋ฐฐ์—ด ๋ฒ”์œ„ ์ฒดํฌ ์กฐ๊ฑด์„ ๊ฐ€์žฅ ์™ผ์ชฝ์— ๋จผ์ € ์œ„์น˜์‹œ์ผœ์•ผ ํ•œ๋‹ค!!!!!!! if(Map[nx][ny] == 1 || check(nx,ny)) โŒ if(check(nx,ny) || Map[nx][ny])โœ…

  1. ์‹œ๊ฐ„ ์ฆ๊ฐ€ ์ „ ํ›„ ์—ฐ์‚ฐ ์ˆœ์„œ

์‹œ๊ฐ„์ด ์ฆ๊ฐ€ํ•˜๊ธฐ ์ „ ์—ฐ์‚ฐ๊ณผ ์ฆ๊ฐ€ํ•˜๊ณ  ๋‚œ ํ›„ ์—ฐ์‚ฐ์ด ํ—ท๊ฐˆ๋ ธ๋‹ค.

๋ฑ€์ด ๋ฒฝ์ด๋‚˜ ์ž์‹ ์˜ ๋ชธ์— ๋ถ€๋”ชํžˆ๊ธฐ ์ „์— ๊ณ„์†ํ•ด์„œ ์ด๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ฐ˜๋ณตํ•˜๋Š”๋ฐ ์ด ๋ฌดํ•œ๋ฃจํ”„ ์•ˆ์—์„œ ์‹œ๊ฐ„ t๋ฅผ ์ฆ๊ฐ€์‹œ์ผฐ๋‹ค. t๋ฅผ 1 ์ฆ๊ฐ€์‹œ์ผฐ๊ธฐ ๋•Œ๋ฌธ์— ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ฑ€์€ ๋‹ค์Œ ์นธ์œผ๋กœ ์ด๋™์„ ํ•œ ๊ฒƒ์ด๋‹ค!

๋”ฐ๋ผ์„œ t++; ์ดํ›„์— ๋‹ค์Œ ์ขŒํ‘œ๋ฅผ ๊ณ„์‚ฐํ•  ๋•Œ์—๋Š” ์ด๋ฏธ ๊ทธ ์นธ์— ์œ„์น˜ํ•œ ๊ฒƒ์ด๋ฏ€๋กœ ๊ณ„์‚ฐํ•œ (nx,ny)๊ฐ€ ๋ฒฝ์ด๊ฑฐ๋‚˜ ๋ฑ€์ด๋ผ๋ฉด ํ˜„์žฌ์˜ t๋ฅผ ๋ฆฌํ„ดํ•˜๋ฉด๋œ๋‹ค! => t๋ฅผ 1 ์ฆ๊ฐ€์‹œ์ผœ๋†“๊ณ  ๋‹ค์Œ t+1์„ ๋ฆฌํ„ดํ•œ ๋ถ€๋ถ„ ํ‹€๋ฆผ

2. ๋ฑ€์ด ์ด๋™ํ•˜๋Š” ๋จธ๋ฆฌ ์œ„์น˜ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ผฌ๋ฆฌ ์œ„์น˜๋„ ์ €์žฅํ•ด์•ผ ํ•œ๋‹ค!!!

๋‹ค์Œ ์ขŒํ‘œ์— ์‚ฌ๊ณผ ์œ ๋ฌด์— ๋”ฐ๋ผ ๊ผฌ๋ฆฌ ์œ„์น˜ ์—…๋ฐ์ดํŠธ ์ฒ˜๋ฆฌ

์‚ฌ๊ณผ ์žˆ๋Š” ์นธ์ผ ๋•Œ : ๊ผฌ๋ฆฌ ์œ„์น˜ ๋”ฐ๋กœ ์ฒ˜๋ฆฌX ์‚ฌ๊ณผ ์—†๋Š” ์นธ์ผ ๋•Œ : ํ˜„์žฌ ๊ผฌ๋ฆฌ ์œ„์น˜ 0์œผ๋กœ ๋งŒ๋“ ๋‹ค.โญ๏ธโญ๏ธโญ๏ธโญ๏ธโญ๏ธ

์ •๋‹ต ์†Œ์Šค์™€ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์  ์ •๋‹ต : ๋ฑ€์˜ ์ •๋ณด ์ €์žฅ(deque ๋˜๋Š” ๋ฐฐ์—ด) ๋‚ด ์ฝ”๋“œ : nx,ny๋งŒ์œผ๋กœ ๋‹ค์Œ ์ขŒํ‘œ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค. ๋ฑ€์ด ํ•œ์นธ์”ฉ ํ˜„์žฌ ๋ฐฉํ–ฅ์—์„œ ์ด๋™ํ•  ๋•Œ, Map์— 1๋กœ ๋งˆํ‚น๋งŒ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. ๋‹ค์Œ ์ด๋™ํ•œ ์นธ์ด ์‚ฌ๊ณผ๊ฐ€ ์•„๋‹ ๋•Œ ํ˜„์žฌ ๊ผฌ๋ฆฌ ์œ„์น˜ 0์œผ๋กœ ๋งŒ๋“ค์–ด์ค˜์•ผํ•˜์ง€๋งŒ ํ˜„์žฌ ๋‚ด์ฝ”๋“œ์—์„œ๋Š” (sx,sy), (nx,ny) ์ฆ‰, ๋ฑ€์ด ์ด๋™ํ•˜๋Š” "๋จธ๋ฆฌ" ์œ„์น˜๋งŒ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ๊ฒƒ์ด ๋ฌธ์ œ๋‹ค. =>๋‹ค์Œ ์ด๋™ํ•œ ์นธ์ด ์‚ฌ๊ณผ๊ฐ€ ์žˆ๋Š” ์นธ์ด๋ฉด ๊ผฌ๋ฆฌ ์œ„์น˜ ๊ทธ๋Œ€๋กœ, ์ด๋™ํ•˜๋ฉด ๋œ๋‹ค. ๋ฑ€ ๊ธธ์ด ๋Š˜์–ด๋‚˜๋Š” ์˜๋ฏธ. ๋‹ค์Œ ์ด๋™ํ•œ ์นธ์ด ์‚ฌ๊ณผ๊ฐ€ ์•„๋‹ˆ๋ฉด ํ˜„์žฌ ๊ผฌ๋ฆฌ ์œ„์น˜๋ฅผ 0์œผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๊ณ , ๋ชธ ๊ธธ์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ–ˆ๋‹ค. ์ฆ‰, ์ด๋™๋งŒ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค!

๋”ฐ๋ผ์„œ ๋ฑ€์˜ ๋จธ๋ฆฌ ์œ„์น˜, ๊ผฌ๋ฆฌ ์œ„์น˜๋ฅผ ์ €์žฅํ•ด์ค˜์•ผํ•˜๊ณ , ์—ฌ๊ธฐ์„œ๋Š” ๋ฑ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค!

3. ๋ฐฉํ–ฅ ์ •๋ณด ์ปฌ๋ ‰์…˜์— ์ €์žฅํ•˜๋ฉด ์ƒ๊ธฐ๋Š” ๋ชจ์ˆœ์ =>์ปฌ๋ ‰์…˜์— ์ €์žฅํ•œ ๊ฒƒ์ด ์ž˜๋ชป๋œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ปฌ๋ ‰์…˜์— ์š”์†Œ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์‚ญ์ œํ•˜๋Š” ๋กœ์ง ์ˆœ์„œ๊ฐ€ ์ž˜๋ชป๋˜์—ˆ๊ณ , ๋ฌธ์ž๋ฅผ ๋น„๊ตํ•  ๋•Œ '=='๋ฅผ ์จ์„œ ํ‹€๋ ธ๋‹ค. '=='์€ ์ฃผ์†Œ๊ฐ’ ๋น„๊ต์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ž ๋น„๊ต ์‹œ์—๋Š” ๋ฐ˜๋“œ์‹œ equals()๋ฅผ ์“ฐ๋„๋ก ํ•œ๋‹ค!!!!!!

์›ํ•˜๋Š” ๋™์ž‘ : ํ˜„์žฌ time์—์„œ ๋ฑ€์„ ์ด๋™์‹œํ‚จ ํ›„์— 0๋ฒˆ์งธ ์ปฌ๋ ‰์…˜ ์š”์†Œ๋กœ time๊ณผ dir ๊ฐ’์„ ์กฐํšŒํ•ด์„œ ํ˜„์žฌ time์—์„œ ๋ฐฉํ–ฅ ์ „ํ™˜ ์ •๋ณด๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ , ์žˆ๋‹ค๋ฉด ๋ฐฉํ–ฅ ์ „ํ™˜์‹œํ‚จ๋‹ค.

0๋ฒˆ์งธ ์š”์†Œ ์กฐํšŒ ํ›„์—๋Š” ์‚ญ์ œํ•˜์—ฌ ๋‹ค์Œ ๋ฐฉํ–ฅ ์ •๋ณด๋ฅผ ์ œ์ผ ์ฒซ๋ฒˆ์งธ์ธ 0๋ฒˆ์งธ ์š”์†Œ๋กœ ๊ฐฑ์‹ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด ๋จผ์ € ์ปฌ๋ ‰์…˜์˜ ํฌ๊ธฐ๊ฐ€ ์–‘์ˆ˜์ธ์ง€ ํ™•์ธํ•˜๊ณ , ์–‘์ˆ˜์ด๋ฉด 0๋ฒˆ์งธ ์š”์†Œ๋ฅผ ์‚ญ์ œํ•˜์—ฌ ์กฐํšŒํ•œ๋‹ค. ๊ทธ ํ›„์— ์กฐํšŒํ•œ ์š”์†Œ์˜ time๊ณผ ํ˜„์žฌ์˜ t๊ฐ€ ๋™์ผํ•œ์ง€ ํ™•์ธํ•˜๊ณ  ๋™์ผํ•˜๋‹ค๋ฉด ๋ฐฉํ–ฅ ์ „ํ™˜์„ ํ•˜๋Š” ๊ฒƒ์ธ๋ฐ, 0๋ฒˆ์งธ ์š”์†Œ๋ฅผ ๋จผ์ € ์‚ญ์ œํ•ด๋ฒ„๋ฆฌ๊ณ  ์กฐํšŒํ–ˆ๋‹ค๊ฐ€ ๋™์ผํ•˜์ง€ ์•Š์œผ๋ฉด ์‚ญ์ œํ–ˆ๋˜ ๋ฐฉํ–ฅ ์ •๋ณด์˜ time์ด ๋์„ ๋•Œ ๊ทธ์— ํ•ด๋‹นํ•˜๋Š” ๋ฐฉํ–ฅ ์ •๋ณด๊ฐ€ ์‚ฌ๋ผ์ ธ๋ฒ„๋ฆฌ๊ฒŒ ๋œ๋‹ค!

if(infoList.size()>0) {
				Info cur = infoList.remove(0); 
				if(t == cur.x) {
					if(cur.dir == "L") {
						d = (d+3)%4;
					} else {
						d = (d+1)%4;
					}
					
				}
			}

์œ„์œผ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•ด์„œ ์•„๋ž˜์ฒ˜๋Ÿผ ์ˆ˜์ •ํ•ด๋ดค๋‹ค. ๋‹ค์Œ ์ด๋™ํ•œ ์นธ์ด ์‚ฌ๊ณผ๊ฐ€ ์•„๋‹ ๋•Œ, Map[q.pollLast().x][q.pollLast().y] = 0; ์—์„œ NullPointerExeception์ด ๋ฐœ์ƒํ–ˆ๋‹ค.. why..why...why... =>์ด๋ฏธ pollLast()๋ฅผ ํ•ด๋ฒ„๋ ธ๋Š”๋ฐ ๋‹ค์‹œ poll()์—ฐ์‚ฐ์„ ํ•ด์„œ NPE๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ์ˆ˜ ์žˆ๋‹ค. =>peekLast().x, peekLast().y๋กœ ์กฐํšŒํ•ด์„œ ์ขŒํ‘œ๊ฐ’ 0์œผ๋กœ ๊ฐฑ์‹ ํ•˜๊ณ , pollLast()๋กœ ์‚ญ์ œํ•œ๋‹ค!

if(infoList.size()>0) {
				Info cur = infoList.get(0);
				if(t == cur.x) {
					if(cur.dir == "L") {
						d = (d+3)%4;
					} else {
						d = (d+1)%4;
					}
					infoList.remove(0);
				}
			}

Last updated

Was this helpful?