ํฐ์คํ ๋ฆฌ ๋ทฐ
[iOS] - Stanford CS193p iOS ๊ฐ์ 6๊ฐ ์ ๋ฆฌ by Paul Hegarty
B_log 2021. 4. 18. 20:06๐ฑ Multi-Touch(๋ฉํฐ ํฐ์น)
- ์ง์ ์ฐ๋ฆฌ๊ฐ ํ๋ฉด์ ํฐ์น๋ ์ ๋ ฅ์ ๋ชจ๋ ์ถ์ ํ ์ ์๊ธด ํ์ง๋ง ๊ทธ๋ด ํ์๊ฐ ์์ต๋๋ค. ๋์ iOS๊ฐ ๋ชจ๋ ์์ง์์ ๊ด์ฐฐํด์ ์ค์์ดํ, ํ๋/์ถ์, ์ด๋, ํญ ๋ฑ์ผ๋ก ๋ณํํ ์ ๋ณด๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- iOS๊ฐ ๋ํ๋ด๋ ๋ชจ๋ ์ ์ค์ฒ๋ UIGestureRecognizer ํด๋์ค์ ๋๋ค. ์ด ํด๋์ค๋ ๋ชจ๋ ์๊ฐ๋ฝ์ ์์ง์์ ์ ์ค์ฒ๋ก ๋ํ๋ ๋๋ค. ์ถ์์ ์ธ ํด๋์ค์ด๊ณ , ๋ชจ๋ ์ ์ค์ฒ๋ฅผ ์ธ์ํ ์๋ ์์ต๋๋ค. ํ์ง๋ง ๋ง์ ์๋ธํด๋์ค๋ฅผ ์ด์ฉํ๋ฉด ๋ค์ํ ์ ์ค์ฒ๋ฅผ ์ธ์ํ ์ ์์ต๋๋ค.
๐ข UIGestureRecognizer
์ ์ค์ฒ๋ฅผ ์ธ์ํ๋ฉด ํฌ๊ฒ ๋ ๋ถ๋ถ์ด ์์ต๋๋ค.
- ๋ทฐ์๊ฒ ํ๋/์ถ์๋ ํญ์ ์ธ์ํ๋ผ๊ณ ๋งํฉ๋๋ค(e.g. plz start recognizing pinches/tabs).
- ์ธ์ํ์ ๋์ ํธ์ถํ ์ ์๋๋ก ํธ๋ค๋ฌ๋ฅผ ์ ๊ณตํฉ๋๋ค(providing a method to "handle" that gesture. not necessarily handled by the UIView).
์์ 1๋ฒ์ ์ฃผ๋ก ์ปจํธ๋กค๋ฌ์ ์ํด ๋์ํฉ๋๋ค(ํน์ ์คํ ๋ฆฌ๋ณด๋).
๋๋๋ก ๋ทฐ๊ฐ ์ค์ค๋ก์๊ฒ ์ ์ค์ฒ ์ธ์ ํจ์๋ฅผ ์ถ๊ฐํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ทฐ๋ฅผ ์คํฌ๋กคํ๋ ๊ฒ์๋ ํ๋/์ถ์์ ์ด๋ ์ ์ค์ฒ๊ฐ ํฌํจ๋์ด ์์ด์ผ ํฉ๋๋ค. ์๋ํ๋ฉด ์์ ์ ์ค์ฒ๊ฐ ์์ด๋ ์คํฌ๋กค์ ํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ง๋ง ์ด๋ฐ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๋ฉด ์ปจํธ๋กค๋ฌ๊ฐ ์ฌ์ฉํฉ๋๋ค.
์์ 2๋ฒ์ ์ ์ค์ฒ๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋๋ค. ๋ง์ฝ ๋ชจ๋ธ์ด ์ ์ค์ฒ์ ์ํด ์ํฅ์ ๋ฐ์์ผ ํ๋ค๋ฉด ์ปจํธ๋กค๋ฌ๊ฐ ์ํฅ์ ์ค๋๋ค. ํ์ง๋ง ๋ทฐ๊ฐ ๋ณด์ด๋ ๋ฐฉ์์๋ง ์ํฅ์ ์ฃผ๋ ๊ฑฐ๋ผ๋ฉด ๋ทฐ๊ฐ ์ง์ ์ ์ค์ฒ๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
๐ UIView์ gesture recognizer ์ถ๊ฐํ๊ธฐ(Adding a gesture recognizer to a UIView)
์์ 1๋ฒ์ฒ๋ผ ๋ทฐ์๊ฒ ์ ์ค์ฒ๋ฅผ ์ด๋ป๊ฒ ์ถ๊ฐํ๊ณ ์ธ์ํ๋ผ๊ณ ํ ์ ์์๊น์?
Outlet ์ค์ ์์ didSet์ ์ฃผ๋ก ์ฌ์ฉํฉ๋๋ค. ์๋ ์์๋ ์ด๋ ์ ์ค์ฒ๋ฅผ ์ธ์ํ์ผ๋ฉด ํ๋ ๋ทฐ์ ์์ธ๋ ์ ์ฌ์ฉํ์ต๋๋ค.
iOS๊ฐ ์ด๋ ์ ์ค์ฒ์ ์์ธ๋ ์ ๋ฌถ์ด์ ๋ทฐ์ ์ ๋ฌํ ๋ ์์ธ๋ ์ didSet์ด ํธ์ถ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ฉด UIGestureRecognizer๋ฅผ ์ฌ์ฉํด ๋ง๋ญ๋๋ค. ๋ชจ๋ recognizer๋ ๋์ผํ ์ด๋์ ๋ผ์ด์ ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ์์ UIPanGestureRecognizer์ parameter๋ ๋๊ฐ์ ๋๋ค. ์ฒซ๋ฒ์งธ ์ธ์๋ ์ฒ๋ฆฌํ์ผ๋ฉด ํ๋ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ฆฌํค๋ target์ ๋๋ค. ์ฃผ๋ก ์ปจํธ๋กค๋ฌ ์๋๋ฉด ๋ทฐ ์์ ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋๋ฒ์งธ ์ธ์๋ action์ผ๋ก ๋ฉ์๋ ์ด๋ฆ์ด ์๊ณ #selector์ ๋๋ฌ์์ฌ ์์ต๋๋ค. ์ด action์ ์ด๋ ์ ์ค์ฒ๋ฅผ ์ธ์ํ๊ธฐ ์์ํ์ ๋ ํธ์ถ๋ฉ๋๋ค.
์ด UIPanGestureRecognizer๋ฅผ ๋ง๋ ๋ค ์ฐ๋ฆฌ๋ ๋ทฐ์๊ฒ ์ด๊ฒ์ ์ธ์ํด๋ฌ๋ผ๊ณ ์์ฒญํด์ผํฉ๋๋ค. ์๋์ addGestureRecognizer๊ฐ ๋ฐ๋ก ์ด ์์ ์ ๋๋ค.
๋ทฐ๋ ์ ์ค์ฒ ์ธ์์๋ฅผ ์ํ๋ ๋งํผ ๊ฐ์ง ์ ์์ต๋๋ค. ์ด ์ด์ผ๊ธฐ๋ ํ๋ฒ์ ํ๊ฐ์ง ์ธ์๋ง ๊ฐ๋ฅํ ๊ฒ์ด ์๋๋ผ ๋์์ 20๊ฐ์ ์๋ก ๋ค๋ฅธ ์ ์ค์ฒ๋ฅผ ์ธ์ํด๋ ๋ฌธ์ ๊ฐ ์๋ค๋ ๋ป์ ๋๋ค.
๐ Handler ํธ์ถํ๊ธฐ
์ด๋ ์ ์ค์ฒ๊ฐ ๋ฐ์ํ์ ๊ฒฝ์ฐ ํธ๋ค๋ฌ๊ฐ ํธ์ถ๋ฉ๋๋ค. ํธ๋ค๋ฌ๋ ์์์ ๋ณผ ์ ์๋ฏ์ด pan ๋ฉ์๋๊ฐ ๋ฉ๋๋ค. ๊ฐ ์ ์ค์ฒ๋ ๋๋ฆ์ ์ ๋ณด๋ฅผ ๊ฐ๊ณ ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด, ํ๋/์ถ์ ์ ์ค์ฒ๋ ๋น์จ์ด ๋๊ณ , ์ด๋ ์ ์ค์ฒ๋ ์ด๋์์ ์ ์ค์ฒ๊ฐ ์ผ์ด๋๊ณ ์๋์ง๋ฅผ ์ ๋ณด๋ก ๊ฐ๊ณ ์์ต๋๋ค.
์๋ฅผ ๋ค๋ฉด UIPanGestureRecognizer๋ ์์ ์ธ๊ฐ ๋ฉ์๋๋ฅผ ๊ฐ์ต๋๋ค. translation ๋ฉ์๋์ ๊ฒฝ์ฐ ์ด๋ ์ ์ค์ฒ๊ฐ ๋ทฐ์ ์ด๋์์ ์ผ์ด๋๊ณ ์๋์ง๋ฅผ ์๋ ค์ค๋๋ค. ๋ velocity ๋ฉ์๋๋ ์ด๋ ์ ์ค์ฒ์ ์๋๋ฅผ ๋งํด์ฃผ๊ณ setTranslation ๋ฉ์๋๋ ์ด๋์ ์ด๊ธฐํํด์ ์ด๋์ ์ ์ง์ (incremental)์ผ๋ก ์ผ์ด๋๊ฒ ํด์ค๋๋ค. ์ด๊ธฐ ์ง์ ์์ ์ผ๋ง๋ ์์ง์๋์ง๋ฅผ ๋ณด๋ ๊ฒ์ด ์๋๋ผ ์ด๋์ด ๋ง์ง๋ง์ผ๋ก ์ผ์ด๋ ์ง์ ์์ ์ผ๋ง๋ ์์ง์๋์ง๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค.
๐ UIGestureRecognizer
UIGestureRecognizer๋ ์ถ์์ ์ธ ์ํผํด๋์ค์ ๋๋ค. ์ฌ๊ธฐ์ state๋ผ๋ ์์ฃผ ์ค์ํ ๋ณ์๊ฐ ์์ต๋๋ค. ์ด ์ ์ค์ฒ ์ธ์์๋ ์ํ ๊ธฐ๊ณ(state machine)์ด๋ผ์ state๋ณ์๊ฐ ์ํ๋ฅผ ๋ํ๋ ๋๋ค. ๊ทธ๋์ ์ด๋ ๊ฐ์ ์ ์ค์ฒ๊ฐ ํ์ธ ๋ ๊ฒฝ์ฐ(e.g. ์๊ฐ๋ฝ ํฐ์น๋์ด ์๋๋ก ์์ง์ผ ๋) state๊ฐ possible์ด ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์์ง์ด๊ธฐ ์์ํ๋ฉด ์ํ๋ began์ผ๋ก ๋ฐ๋๋๋ค. ์ด๋์ด ์์๋์๋ค๋ ์๋ฏธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ๋ฝ์ ๊ณ์ ์์ง์ด๋ฉด changed ์ํ๋ก ๋ฐ๋๋๋ค. ์ํ ๋ณ๊ฒฝ์ด ๋งค๋ฒ ์ผ์ด๋ ๋๋ง๋ค ํธ๋ค๋ฌ๊ฐ ํธ์ถ๋ฉ๋๋ค. ์ด ์ํฉ์ ์ฒ๋ฆฌํ๋ ํจ์๊ฐ ์คํ ๋ ๊ธฐํ๋ฅผ ์ป๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ ์ค์ฒ์์ .changed๋ ์์ง์ผ ๋๋ง๋ค ํธ์ถ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ๋ฝ์ด ๋จ์ด์ง๋ฉด ์ ์ค์ฒ๊ฐ ๋๋๊ณ .ended๋ฅผ ์ป๊ฒ ๋ฉ๋๋ค.
ํธ๋ค๋ฌ๋ ์ํ๊ฐ ๋ฐ๋ ๋๋ง๋ค ๊ณ์ ํธ์ถ๋๊ณ , ์ค์์ดํ ๊ฐ์ ๊ฒ์ ์ฐ์์ ์ด์ง ์์ต๋๋ค. ์ค์์ดํ๊ฐ ์ผ์ด๋๋๊ฐ ์๋๊ฐ๋ก ๋๋ฉ๋๋ค. ๋ถ์ฐ์ ์ ์ค์ฒ๋ผ์ ์๊ฐ๋ฝ์ด ํ๋ฉด์ ์๋ฌด๋ฆฌ ๋๋น๊ณ ๋ค๋ ๋ .changed๋ ์ป์ ์ ์์ต๋๋ค. .ended๋ฅผ ์ป๊ฑฐ๋ .recognized๊ฐ ํธ๋ค๋ฌ์๊ฒ ํ ๋ฒ ์ ๋ฌ๋ ๋ฟ์ ๋๋ค. ํ์ง๋ง ์ฐ์์ ์ธ ์ ์ค์ฒ์๋ .changed๊ฐ ์์ต๋๋ค. ๋ .failed๋ .cancelled๋ผ๋ ์ํ๋ ์์ต๋๋ค.
- .failed๋ ์ฌ๋ฌ ๊ฐ์ ์ ์ค์ฒ ์ค์ ํ๋๊ฐ ๋ค๋ฅธ ๊ฒ๋ณด๋ค ์ฐ์๋ฅผ ์ ํ์ ๋ ๋ฐ์ํฉ๋๋ค(one of them wins). ์๋ฅผ ๋ค์ด, ํญ๊ณผ ์ด๋์ ๋์์ ํ๋ค๊ณ ํ์ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณด๊ฒ ์ต๋๋ค. ๋ง์ฐ์ค๋ฅผ ์๋๋ก ์์ง์ด๋ฉด ๋์ด ๋์์ ๋ฐ์ํ ์ ์์ต๋๋ค. ํฐ์นํ ์งํ์ ๋ฐ๋ก ์ป์ด์ง๋ ๊ฒ์ ์๋๋๋ค. ํ์ง๋ง ๊ณง๋ฐ๋ก ์๊ฐ๋ฝ์ ๋ค์ ๋ ์ ๋๋ ์ด๋์ด ๋ ์ ์๋ค๋ ๊ฒ์ ์์์ฑ๊ณ ๋ค๋ฅธ ํ๋๊ฐ ์ทจ์๋๋ ๊ฒ๋๋ค. ๊ทธ๋ฌ๋ฉด failed๊ฐ ๋ฉ๋๋ค. ํ์ง๋ง ์ ์ค์ฒ๊ฐ ์ผ์ด๋๊ธฐ ์์ํ ํ์ ์ํ๊ฐ ๋ฐ๋๋๋ค. ํฐ์นํ์ง ์ผ๋ง ๋์ง ์์๋๋ฐ ์ ์ค์ฒ๊ฐ ์ธ์๋์ง๋ ์์ต๋๋ค.
- .cancelled๋ ์ฃผ๋ก drag&drop ์ํฉ์์ ๋ฐ์ํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ๋ญ๊ฐ๋ฅผ ์์ํด์ ์ ๊ฐ๋ค๊ฐ ๋๋๊ทธ & ๋๋กญ์ ํ๋ฉด ๋ฌด์จ ์ ์ค์ฒ๊ฐ ์ธ์๋์๋ ์ง ์ทจ์๋์ด๋ฒ๋ฆฝ๋๋ค.
๊ทธ๋์ failed๋ cancelled๋ฅผ ์์์ฃผ์ํ๊ณ ์๋ค๊ฐ ๋ฐ์ํ๋ฉด ํ๋ฉด์์ ์์ ๋ ๊ฒ์ฒ๋ผ ๊น๋ํ๊ฒ ์น์๋ฒ๋ฆด(clean up) ์ ์์ต๋๋ค. ์๋ํ๋ฉด ์ ์ค์ฒ๊ฐ ์ด๋ค ์ด์ ๋ก failed๋ cancelled ๋์๊ธฐ ๋๋ฌธ์ ๋๋ค.
๐ณ Pan Handler ์์
pan ๋ฉ์๋์ ๊ตฌ์กฐ๋ ์๋์ ๊ฐ์ต๋๋ค.
pan ๋ฉ์๋๋ ์๊น ์์ฑํ๋ UIPanGestureRecognizer๋ฅผ parameter๋ก ๋ฐ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ state์ ๋ํด์ switch๋ฌธ์ ๋์์ํต๋๋ค. .changed๋ .ended์ ๊ฒฝ์ฐ์๋ ์ด๋ ์ ์ค์ฒ๊ฐ ๊ณ์ ์์ง์ด๊ณ ์๊ฑฐ๋ ๋ฐฉ๊ธ ๋๋ฌ์ ๊ฒ๋๋ค. ์์น์ ๋ฐ๋ผ pan์ ๊ฑด๋๋ ค๋ณด๊ฒ ์ต๋๋ค. ์ ์ฐจ์ ์ผ๋ก ์ฆ๊ฐํ๋ pan์ ์ํ๋ค๋ฉด 0์ผ๋ก ๋ฆฌ์ ํด์ผ๋ฉ๋๋ค. ๋ค์ ์ ์ค์ฒ๊ฐ 0์์ ์์ํด์ ์ ์ฐจ์ ์ผ๋ก ์ฆ๊ฐํ๋ ๊ฒ์ ๋๋ค.
๐ฆ UIPinchGestureRecognizer
- scale: PinchGesture๋ ๋น์จ์ ์ด์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด ํ๋/ ์ถ์๋ฅผ ์์ํ์ ๋ ๋ ๋ฐฐ ๋๊ฒ ์๊ฐ๋ฝ์ ํผ๋ฉด scale์ 2.0์ด ๋ฉ๋๋ค. ๋ฐ์ผ๋ก ์ค์ด๋ฉด ๋ฐ๋๋ก 0.5๊ฐ ๋ฉ๋๋ค.
- velocity: ์๋ ์ ๋ณด ์ ๋๋ค.
- rotation: RotationGesture๋ ์์ก์ด๋ฅผ ๋๋ฆฌ๋ฏ์ด ์๊ฐ๋ฝ ๋ ๊ฐ๋ก ์์ก์ด๋ฅผ ๋๋ฆฌ๋ ์ ์ค์ฒ์ ๋๋ค. Radian ๋จ์๋ก ์์ก์ด๊ฐ ์ผ๋ง๋ ๋์๊ฐ๋์ง๋ฅผ ์๋ ค์ค๋๋ค.
Swipe๋ ๋ค๋ฅธ ์ ์ค์ฒ์ ๋ฌ๋ผ์ ๋ฐ๋ก ์ ํด์ค์ผํ๋ ๊ฒ์ด ์์ต๋๋ค(e.g. ๋ช ๊ฐ์ ์๊ฐ๋ฝ์ ์ฌ์ฉํ๋์ง, ์ด๋ค ๋ฐฉํฅ์ธ์ง). ์ดํ SwipeGesture๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ ์๋์ํจ ๋ค์ ์ค์์ดํ๊ฐ ์ผ์ด๋๋ฉด .ended๋ฅผ ์ป์ต๋๋ค. ํธ๋ค๋ฌ๋ .ended์ ํจ๊ป ํธ์ถ๋ฉ๋๋ค. ์ฐจ์ด์ ์ ๋ฐ๋ก ์ค์ ์ ํด์ค์ผ ํ๋ค๋ ๊ฒ๊ณผ ์ธ์์ ํ๋์ง ์ํ๋์ง๋ง์ ๋งํด์ค๋ค๋ ๊ฒ์ ๋๋ค.
Tap Gesture๋ ์ค์์ดํ ๊ฐ์ ๋๋์ด๋ฉฐ ๋ถ์ฐ์ ์ ์ค์ฒ ์ ๋๋ค. ๊ทธ๋ฌ๋ Double Tap ๊ฐ์ ๊ฒ์ด ์๊ธฐ ๋๋ฌธ์ TapGesture๋ก .ended๋ฅผ ๊ธฐ๋ค๋ ค์ผ ํฉ๋๋ค. ํ์ง๋ง Swipe์ฒ๋ผ ํญ์ด ๋ช ๊ฐ์ด๊ณ ์๊ฐ๋ฝ์ ๋ช ๊ฐ์ธ์ง ๋ฑ์ ์ค์ ํ ์ ์์ต๋๋ค.
LongPress๋ ์ฐ์ ์ ์ค์ฒ์ ๋๋ค. ์๋ํ๋ฉด ๊พน ๋๋ฅด๊ณ ์๋ ์์ค์ ์๊ฐ๋ฝ์ด ์ฝ๊ฐ ์์ง์ผ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ํ์ง๋ง ์กฐ๊ธ๋ง ์์ง์๊ธฐ ๋๋ฌธ์ ์ด๋์ ์ค์ฒ๋ ์๋๋๋ค. ๊ทธ๋๋ ์์ง์ด๊ธด ํ์ผ๋ .changed๋ฅผ ์ป๊ฒ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ผ๋ง์ ์์ง์์ ํ์ฉํ ๊ฒ์ธ์ง, LongPress๊ฐ ๋ถ๋ฆฌ๊ธฐ ์ ์ ์ผ๋ง๋ ๋๋ฅด๊ณ ์์ด์ผ ํ๋์ง ๋ฑ์ ์ค์ ํ ์ ์์ต๋๋ค. ๋๋๊ทธ & ๋๋กญ์ด ๊ฐ์ญ์ ๋ง์ด ํ๊ณค ํฉ๋๋ค. ์๋ํ๋ฉด ๋๋๊ทธ & ๋๋กญ๋ LongPress๋ฅผ ์ฐ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋๋๊ทธ & ๋๋กญ์์ ๋ฌด์ธ๊ฐ๋ฅผ ์ง์ ๋ LongPress๊ฐ ํธ์ถ๋ฉ๋๋ค.
Reference: Stanford CS193p by Paul Hegarty
'iOS ์ฑ๊ฐ๋ฐ > iOS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
- Total
- Today
- Yesterday
- ํ ๋งํ #๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- ๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ#BackTracking
- ๋ฐฐ์ดํฉ์น๊ธฐ#๋ถํ ์ ๋ณต#BOJ#Python
- django
- ์์ด์ฌ์ดํด#BOJ#Python
- NumberofDiscIntersections#Codility#Sort#Python
- API#lazy#
- ๋์ ์๋ฅด๊ธฐ#์ด๋ถํ์#BOJ#Python
- ํฐํ๋น์น#๋ฆฌ์ฝ#xbox#controller
- ๊ณต์ ๊ธฐ ์ค์น#BOJ#์ด๋ถํ์#Python
- Triangle#Sorting#Codility#Python
- ์ข ์ด์๋ฅด๊ธฐ#๋ถํ ์ ๋ณต#BOJ#Python
- N์ผ๋ก ํํ#DP#Programmers#Python
- ๋ฐ๋ณต์์ด#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- ์ฟผ๋ํธ๋ฆฌ#BOJ#๋ถํ ์ ๋ณต#Python
- Brackets#Stacks and Queues#Codility#Python
- ๋ฏธ๋ก ํ์#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- ๋ ์ง ๊ณ์ฐ#BOJ#์์ ํ์#Python
- Distinct#Codility#Python
- ๋๋ฌด์๋ฅด๊ธฐ#BOJ#์ด๋ถํ์#Python
- Swift#Tuples#Range
- ๋ฆฌ๋ชจ์ปจ#์์ ํ์#BOJ#Python
- ํ์ด์ฌ์๊ณ ๋ฆฌ์ฆ์ธํฐ๋ทฐ#4์ฅ
- PassingCars#Codility#Python
- ์ํธ์ฝ๋#dp#BOJ#Python
- django#slicing
- ํ ํ๋ก์ ํธ#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
- filter#isalnum#lower
- ๋ณ๋ ๋์ดํธ#BOJ#ํ์๋ฒ#Python
- ์ฌ์๊ฐ์#๋ฐฑ์ค์๊ณ ๋ฆฌ์ฆ#Python
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |