๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

CCW2

BOJ 17386 ์„ ๋ถ„ ๊ต์ฐจ 1, BOJ 17387 ์„ ๋ถ„ ๊ต์ฐจ 2 ํ•ด๋‹น ๋ฌธ์ œ๋Š” CCW๋ฅผ ํ†ตํ•ด ํ•ด๊ฒฐํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.CCW์— ๋Œ€ํ•œ ์ž์„ธํ•œ ํฌ์ŠคํŠธ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ข…๋ฅ˜์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค. CCW๋ฅผ ํ†ตํ•ด ์–ด๋–ป๊ฒŒ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด๋ณด์ž. ์„ ๋ถ„์€ ๊ต์ฐจํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๊ต์ฐจํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๋กœ ๊ฐ€๋ณ๊ฒŒ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋‹ค.๊ฐ๊ฐ์˜ ๋ฐฉํ–ฅ์„ ๋”ฐ์ ธ๋ณด์ž. ๊ต์ฐจํ•˜๋Š” ๊ฒฝ์šฐ CCW(A,B,C)๋Š” ์Œ์ˆ˜ CCW(A,B,D)๋Š” ์–‘์ˆ˜๋ฅผ ๊ฐ–๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.๋˜ CCW(C,D,A)๋Š” ์–‘์ˆ˜, CCW(C,D,B)๋Š” ์Œ์ˆ˜๋ฅผ ๊ฐ–๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์ฆ‰, ํ•œ ์„ ๋ถ„์„ ๊ธฐ์ค€์œผ๋กœ ๋‹ค๋ฅธ ์„ ๋ถ„์˜ ๋ ์ ์ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ถ€ํ˜ธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉด ๊ต์ฐจํ•œ๋‹ค๊ณ  ํŒ๋‹จ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ„๋‹จํžˆ ์„ ๋ถ„ AB๋งŒ ์˜ˆ์‹œ๋กœ ๋ณด์ž.๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ต์ฐจํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ CCW(A,B,C)์™€ CCW(A,B,D)๋Š” ๋ฌด์กฐ๊ฑด ๊ฐ™์€ ๋ฐฉํ–ฅ์„ ๋ณด๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด์ œ C.. 2025. 6. 30.
CCW (Counter Clock Wise) ์„ธ ์ ์˜ ๋ฐฉํ–ฅ์„ฑ์„ ํŒ๋‹จํ•˜๋Š” ๊ธฐํ•˜ํ•™์  ๋ฌธ์ œ CCW ๊ฐ’์— ์˜ํ•ด ์„ธ ์ ์ด ์–ด๋А ๋ฐฉํ–ฅ์œผ๋กœ ํ–ฅํ•˜๋Š”์ง€ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๊ณต์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.CCW(A, B, C) = (B.x - A.x) × (C.y - A.y) - (B.y - A.y) × (C.x - A.x)๊ฒฐ๊ณผ ๊ฐ’์— ๋”ฐ๋ผ ์–‘์ˆ˜: ๋ฐ˜์‹œ๊ณ„๋ฐฉํ–ฅ, ์Œ์ˆ˜: ์‹œ๊ณ„ ๋ฐฉํ–ฅ, 0: ์ผ์ง์„ ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. CCW๊ฐ€ ์–ด๋–ป๊ฒŒ ๋„์ถœ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์ž.์ขŒ์ธก ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ์ขŒํ‘œ๋ฅผ ๊ฐ€์ง„ ์„ธ ์ ์ด ์žˆ์„ ๋•Œ, A๋ฅผ ์›์ ์œผ๋กœ C์™€ B์˜ ๋ฒกํ„ฐ๋ฅผ ๊ตฌํ•˜๋ฉด ์˜ค๋ฅธ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๋œ๋‹ค. ๊ณต์‹์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค.A' = (0, 0) ← A์—์„œ A๋ฅผ ๋บ€ ๊ฒƒB' = (bx - ax, by - ay) ← B์—์„œ A๋ฅผ ๋บ€ ๊ฒƒ (6, 2) ์ด๋ผ๊ณ  ๊ฐ€์ •C' = (cx - ax, cy - ay) ← C์—์„œ A๋ฅผ ๋บ€ ๊ฒƒ (7, 3) ๋ผ.. 2025. 6. 30.