๋ชฉ๋ก์ ์ฒด ๊ธ (208)
๐ป
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/OTh42/btqDDw7Mrag/UokLcNOtNgTBDeDMiQ3kgk/img.png)
https://www.acmicpc.net/problem/15685 15685๋ฒ: ๋๋๊ณค ์ปค๋ธ ์ฒซ์งธ ์ค์ ๋๋๊ณค ์ปค๋ธ์ ๊ฐ์ N(1 ≤ N ≤ 20)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ๋๋๊ณค ์ปค๋ธ์ ์ ๋ณด๊ฐ ์ฃผ์ด์ง๋ค. ๋๋๊ณค ์ปค๋ธ์ ์ ๋ณด๋ ๋ค ์ ์ x, y, d, g๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. x์ y๋ ๋๋๊ณค ์ปค๋ธ์ ์์ ์ , d๋ ์์ ๋ฐฉํฅ, g๋ ์ธ๋์ด๋ค. (0 ≤ x, y ≤ 100, 0 ≤ d ≤ 3, 0 ≤ g ≤ 10) ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ ๋๋๊ณค ์ปค๋ธ๋ ๊ฒฉ์ ๋ฐ์ผ๋ก ๋ฒ์ด๋์ง ์๋๋ค. ๋๋๊ณค ์ปค๋ธ๋ ์๋ก ๊ฒน์น ์ ์๋ค. ๋ฐฉํฅ์ 0, 1, 2, www.acmicpc.net ๋ฌธ์ ๋๋๊ณค ์ปค๋ธ๋ ๋ค์๊ณผ ๊ฐ์ ์ธ ๊ฐ์ง ์์ฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ, ์ด์ฐจ์ ์ขํ ํ๋ฉด ์์์ ์ ์๋๋ค. ์ขํ ํ๋ฉด์ x์ถ์ → ๋ฐฉํฅ..
์ ์์ผ(Agile) : ์์ ๊ณํ์ ์งง์ ๋จ์๋ก ์ธ์ฐ๊ณ ์์ ํ์ ๋ง๋ค์ด ๋๊ฐ๋ ์ฌ์ดํด์ ๋ฐ๋ณตํจ์ผ๋ก์จ ๊ณ ๊ฐ์ ์๊ตฌ ๋ณํ์ ์ ์ฐํ๊ณ ๋ ์ ์ํ๊ฒ ๋์ํ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ↔ ์ํฐํด(Waterfall) : ์ฅ๊ธฐ์ ๊ด์ ์์ ๊ณํ์ ์ ๊ตํ๊ฒ ์ธ์ฐ๊ณ ์ฌ์ ์ ๋จ๊ณ๋ณ๋ก ์ ํด๋์ ๊ธฐ์ค์ ์ถฉ์กฑํ์ง ์์ผ๋ฉด ๋ค์์ผ๋ก ๋์ด๊ฐ์ง ์๋๋ค๋ ํน์ง์ด ์๋ค. - ์ต๊ทผ ์ ์์ผ์ ๊ฐ๋ฐ์ ๊ตญํ๋์ง ์๊ณ ์กฐ์ง๊ณผ ์ฌ์ ๋ฑ ๊ธฐ์ ๊ฒฝ์ ์ ๋ฐ์ผ๋ก ์ฌ์ฉ๋ฒ์๊ฐ ํ์ฅ - ์ํฐํด ๊ฐ๋ฐ์ ๋จ์ ์ ์ง๋์น๊ฒ ๊ณํ๊ณผ ์ ์ฐจ์ ์์กด. ์ด๋ ์๊ฐ๊ณผ ๋น์ฉ์ ๋ญ๋น๊ฐ ์ฆ๊ฐ - ์ ์์ผ์ ํ๋์ ํน์ ๋ฐฉ๋ฒ๋ก ์ ๊ฐ๋ฆฌํค๋ ๊ฒ ์๋, ๋น ๋ฅด๊ณ ๋ญ๋น์์ด ๋ณํ์ ๊ธฐ๋ฏผํ๊ฒ ๋์ํ๋ ๊ฐ๋ฐ์ ๊ฐ๋ฅํ๊ฒ ๋ง๋ค์ด์ฃผ๋ ๋ค์ํ ๋ฐฉ๋ฒ๋ก ์ ์ฒด๋ฅผ ์ผ์ปซ๋ ๋ง๋ก ํต์ฉ๋๊ธฐ์ ์ด๋ฅด๋ ๋ค. - ํน์ง 1) ๊ณ ๊ฐ ์ค์ฌ 2) ์์..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bwJa11/btqDA5WzIKW/lHmQ2QL13465Uklg7WKAnk/img.png)
--PL/SQL => PL(Procedural Language Extension)/ SQL(Structured Query Language) --DML์ ๋จ์ ๋ฐ์ดํฐ ํ์ฉ ํ๊ณ๋ก SQL ์ธ์ด์ ์ ์ฐจ์ ์ธ์ด์ ์์๋ฅผ ๋ํ์ฌ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ --ํฅ์์ํจ ๊ธฐ๋ฅ์ด๋ค. ์ผ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์์ ์ ๊ณตํ๋ ๋ง์ ๊ธฐ๋ฅ๋ค์ด ํ์ฌ๋์ด ์๋ค. --DB์ ์ง์ ํ์ฌ๋์ด ์ปดํ์ผ๋๊ณ ์คํ๋์ด ์ฑ๋ฅ ๋ฉด์์๋ ์ฐ์ํ๋ค. --1. ๊ธฐ๋ณธ๊ตฌ์ฑ : DECLARE ~ BEGIN ~ EXCEPTION ~ END --1) ํจ์ ๊ตฌ์ฑ --์ถ๋ ฅ์ฐฝ์์ ๋ณด๋ ค๊ณ ํ๋ฉด์ ๊ธฐ๋ณธ์ค์ ์ธ OFF๋ฅผ ON์ผ๋ก ๋ฐ๊ฟ์ฃผ์ด์ผํ๋ค. --2) ์ ํ์ฒ๋ฆฌ : IF ~ THEN ~ END IF, IF ~ THEN ~ ELSE ~ END IF, IF ~ THEN ~ ELSIF ~ EN..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cM6v8H/btqDzDGdEt9/AYadplnFhyCuIM4zuTkZfk/img.png)
--12. VIEW : ์์ฃผ ์ฌ์ฉํ๋ DML๋ฅผ ํ ์คํธ ํํ๋ก ์ ์ฅํด ๋๋๋ค. --12-1) ๋ทฐ์์ฑ / CREATE VIEW ๋ทฐ๋ช AS subquery --12-2) ๋ทฐ์ ํ --12-3) ๋ทฐ์์ -> ๊ธฐ์กด ๋ทฐ๋ ๊ทธ๋๋ก ์ ์งํ๋ฉด์ ๋ด์ฉ๋ง ๋ณ๊ฒฝ -- CREATE OR REPLACE ๋ฌธ์ ๋ ๋ง์ด ์ฌ์ฉํ๋ค. --12-4) ๋ทฐ์ญ์ --12-5) ์์ฉ ์์๋ค
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/byP5iA/btqDxvicTyA/eG2WLoBfn9X3BcpmNqcUw0/img.png)
--DDL : ํ ์ด๋ธ, ์ํ์ค, ๋ทฐ๊ฐ ํด๋น๋๋ค. --8. SEQUENCE : ์ฐ์์ ์ธ ์ซ์ ๊ฐ์ ์๋์ผ๋ก ์ฆ๊ฐ(์: ์ํ๋ฒํธ) --CREATE SEQUENCE msg_num_seq; --1๋ถํฐ ์์ํด์ 1์ฉ ์ฆ๊ฐ(์ ํ ์์). ๋ณดํต ์ด๋ ๊ฒ ์์ฃผ์ด๋ค. --9. TRANSACTION : SQL ์ง์์ด ํ๋์ ์์ ์ ํธ๋์ญ์ ์ด๋ผ๊ณ ํ๋ค. --9-1) COMMIT : ํ๋์ ํธ๋์ญ์ ๊ณผ์ ์ ์ข ๋ฃํ๋ค. --9-2) ROLLBACK : ์ด์ ์ํ๋ก ๋์๊ฐ๋ค. (์ทจ์) --9-3) SAVEPOINT : ์ค๊ฐ๋จ๊ณ๋ก ๋๋๋ฆฌ๊ธฐ --์ฐ๋ฆฌ๊ฐ ํ๋ก๊ทธ๋จ์ ์ง๋ฉด ํ๋๋์คํฌ(์ ์ฅ์ฅ์)์ ์ฌ๋ผ๊ฐ๋ค. --์ปดํ์ผํด์ ์คํํ๋ฉด ์คํ๊ณผ ๋์์ RAM(์ฃผ๊ธฐ์ต์ฅ์น)์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ฌ๋ผ๊ฐ๋ค. --์ค๋ผํด์์ ํน์ ํ ์ด๋ธ์ ์กฐํํ ๋๋ ๋ง์ฐฌ๊ฐ์ง๋ก ํด..
๋ฌธ์ ์ค๋์ ์คํํธ๋งํฌ์ ๋ค๋๋ ์ฌ๋๋ค์ด ๋ชจ์ฌ์ ์ถ๊ตฌ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค. ์ถ๊ตฌ๋ ํ์ผ ์คํ์ ํ๊ณ ์๋ฌด ์ฐธ์๋ ์๋๋ค. ์ถ๊ตฌ๋ฅผ ํ๊ธฐ ์ํด ๋ชจ์ธ ์ฌ๋์ ์ด N๋ช ์ด๊ณ ์ ๊ธฐํ๊ฒ๋ N์ ์ง์์ด๋ค. ์ด์ N/2๋ช ์ผ๋ก ์ด๋ฃจ์ด์ง ์คํํธ ํ๊ณผ ๋งํฌ ํ์ผ๋ก ์ฌ๋๋ค์ ๋๋ ์ผ ํ๋ค. BOJ๋ฅผ ์ด์ํ๋ ํ์ฌ ๋ต๊ฒ ์ฌ๋์๊ฒ ๋ฒํธ๋ฅผ 1๋ถํฐ N๊น์ง๋ก ๋ฐฐ์ ํ๊ณ , ์๋์ ๊ฐ์ ๋ฅ๋ ฅ์น๋ฅผ ์กฐ์ฌํ๋ค. ๋ฅ๋ ฅ์น Sij๋ i๋ฒ ์ฌ๋๊ณผ j๋ฒ ์ฌ๋์ด ๊ฐ์ ํ์ ์ํ์ ๋, ํ์ ๋ํด์ง๋ ๋ฅ๋ ฅ์น์ด๋ค. ํ์ ๋ฅ๋ ฅ์น๋ ํ์ ์ํ ๋ชจ๋ ์์ ๋ฅ๋ ฅ์น Sij์ ํฉ์ด๋ค. Sij๋ Sji์ ๋ค๋ฅผ ์๋ ์์ผ๋ฉฐ, i๋ฒ ์ฌ๋๊ณผ j๋ฒ ์ฌ๋์ด ๊ฐ์ ํ์ ์ํ์ ๋, ํ์ ๋ํด์ง๋ ๋ฅ๋ ฅ์น๋ Sij์ Sji์ด๋ค. N=4์ด๊ณ , S๊ฐ ์๋์ ๊ฐ์ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด์. i\j12341..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bwHrip/btqDvZw91qP/f6vapCSmi4c3mt41zK6Fh0/img.png)
- ๋ฐ์ดํฐ๋ ๋ฌด์์ธ๊ฐ? : ์ปดํจํฐ๊ฐ ์ฒ๋ฆฌํ ์ ์๋ ๋ฌธ์, ์ซ์, ์๋ฆฌ, ๊ทธ๋ฆผ ๋ฐ์์ ํํ๋ก ๋ ์ ๋ณด - ๋ชจ๋ธ๋ง์ ํน์ง : ์ถ์ํ, ๋จ์ํ, ๋ช ํํ - ๋ชจ๋ธ๋ง์ 3๊ฐ์ง ๊ด์ ๋ฐ์ดํฐ๊ด์ ํ๋ก์ธ์ค ๊ด์ ๋ฐ์ดํฐ์ ํ๋ก์ธ์ค์ ์๊ด๊ด์ - ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ด๋? ์ ๋ณด์์คํ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๋ฐ์ดํฐ๊ด์ ์ ์ ๋ฌด ๋ถ์ ๊ธฐ๋ฒ ํ์ค์ธ๊ณ์ ๋ฐ์ดํฐ์ ๋ํด ์ฝ์๋ ํ๊ธฐ๋ฒ์ ์ํด ํํํ๋ ๊ณผ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๋ถ์/์ค๊ณ์ ๊ณผ์ - ์ ๋ชจ๋ธ๋ง์ ํ๋๊ฐ? : ํ์ค์ธ๊ณ -> ์ถ์ํ, ๋จ์ํ, ๋ช ํํ -> ์ค๊ณ๋๋ฅผ ํตํ ์์คํ ์ ์ค๊ณ. ๊ฐ๋ ํ๋ ์๋น์ค๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๊ตฌํํ์ฌ ์์คํ ํ ํ๋ ๊ฒ - ๋ฐ์ดํฐ ๋ชจ๋ธ๋ง์ ํน์ง ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ ๊ณต ๊ธฐ๋ฅ : ๊ฐ์ํ, ๋ช ์ธํ, ๋ฌธ์ํ ์ค์์ฑ : ํ๊ธํจ๊ณผ ํผ, ๊ฐ๊ฒฐํ ํํ ๊ฐ๋ฅ, ๋ฐ์ดํฐ ํ์ง ์ ์ง..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cmYc4k/btqDwDsNiEW/kpDQFwbaRVTRVuEtmiXn3k/img.png)
-- 6. ์ ์ฝ์กฐ๊ฑด(Constraint) -- 6-1) ๋๋ฉ์ธ ์ ์ฝ์กฐ๊ฑด -- 6-2) ํค ์ ์ฝ์กฐ๊ฑด -- 6-3) ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด -- 6-4) ์ ์ฝ์กฐ๊ฑด ์ ํ --1) NOT NULL : ํด๋น ์ปฌ๋ผ ๊ฐ์ผ๋ก NULL์ ํ์ฉํ์ง ์์ --2) UNIQUE : ํ ์ด๋ธ ๋ด์์ ํด๋น ์ปฌ๋ผ ๊ฐ์ ํญ์ ์ ์ผ๋ฌด์ผ(์ค๋ณต๊ฐ ํ์ฉ์ํจ)ํ ๊ฐ, NULL ํ์ฉ --3) PRIMARY KEY : ํด๋น ์ปฌ๋ผ ๊ฐ์ ๋ฐ๋์ ์กด์ฌํด์ผ ํ๊ณ , ์ ์ผํ๊ฒ ํด์ผํ๋ค. (NOT NULL + UNIQUE) --4) CHECK : ์ด ์กฐ๊ฑด์ผ๋ก ์ค์ ๋ ๊ฐ๋ง ์ ๋ ฅ์ ํ์ฉ --5) FOREIGN KEY : ํด๋น ์ปฌ๋ผ์ ๊ฐ์ด ๋ค๋ฅธ ํ ์ด๋ธ์ ์ปฌ๋ผ ๊ฐ์ ์ฐธ์กฐ. -- ์ปฌ๋ผ์ ์๋ ๊ฐ์ ์ ๋ ฅํ์ง ๋ชปํจ --ํ์ ํ ์ด๋ธ์ ๋ ์ฝ๋ ๋ฃ๊ธฐ --6) ๋นํ์ฑ/ํ์ฑ, ์ญ์ /์ถ๊ฐ