[ 2023-08-14 ๐ŸŽž๏ธ TIL ]

Burkeyยท2023๋…„ 8์›” 14์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
141/157

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค SQL(Oracle), JS ์•Œ๊ณ ๋ฆฌ์ฆ˜

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV. 2 ๋ฉ€๋ฆฌ๋›ฐ๊ธฐ JS


๋ฌธ์ œ

ํšจ์ง„์ด๋Š” ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ๋ฅผ ์—ฐ์Šตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 
ํšจ์ง„์ด๋Š” ํ•œ๋ฒˆ์— 1์นธ, ๋˜๋Š” 2์นธ์„ ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์นธ์ด ์ด 4๊ฐœ ์žˆ์„ ๋•Œ, 
ํšจ์ง„์ด๋Š” 
(1์นธ, 1์นธ, 1์นธ, 1์นธ)
(1์นธ, 2์นธ, 1์นธ)
(1์นธ, 1์นธ, 2์นธ)
(2์นธ, 1์นธ, 1์นธ)
(2์นธ, 2์นธ)
์˜ 5๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ๋งจ ๋ ์นธ์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฉ€๋ฆฌ๋›ฐ๊ธฐ์— ์‚ฌ์šฉ๋  ์นธ์˜ ์ˆ˜ n์ด ์ฃผ์–ด์งˆ ๋•Œ, 
ํšจ์ง„์ด๊ฐ€ ๋์— ๋„๋‹ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋ช‡ ๊ฐ€์ง€์ธ์ง€ ์•Œ์•„๋‚ด, 
์—ฌ๊ธฐ์— 1234567๋ฅผ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•˜์„ธ์š”. 

์˜ˆ๋ฅผ ๋“ค์–ด 4๊ฐ€ ์ž…๋ ฅ๋œ๋‹ค๋ฉด, 
5๋ฅผ returnํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ๊ฒฐ๊ณผ

nresult
45
33

๋ฌธ์ œ๋งํฌ


์ฝ”๋“œ

function solution(n) {
    let dp = Array(n+1).fill(0)
    dp[1] = 1
    dp[2] = 2
    
    for(let i = 3; i <= n; i++){
       dp[i] = (dp[i-1] + dp[i-2]) % 1234567
    }
    // ๋ฆฌํ„ด ๊ฐ’์— dp%1234567ํ•  n์ด ํŠน์ •๊ฐ’ ์ด์ƒ์ผ ๊ฒฝ์šฐ null์ด ๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. 
    return dp[n] 
}

์œ„์— ๋ฌธ์ œ๊ฐ€ ํ”ผ๋ณด๋‚˜์น˜๋ฌธ์ œ์™€ ๋™์ผํ•œ ํ˜•ํƒœ์ธ ๊ฒƒ์„ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๋ ‡๊ธฐ์— dp๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ฉด, ์žฌ๊ท€๋‚˜ ๋ฐ˜๋ณต๋ฌธ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ ๋„ ํšจ์œจ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒ์œ„ n๊ฐœ ๋ ˆ์ฝ”๋“œ (Oracle)


๋ฌธ์ œ

ANIMAL_INS ํ…Œ์ด๋ธ”์€ ๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค.
ANIMAL_INS ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์œผ๋ฉฐ, 
ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE๋Š” 
๊ฐ๊ฐ ๋™๋ฌผ์˜ ์•„์ด๋””, ์ƒ๋ฌผ ์ข…, ๋ณดํ˜ธ ์‹œ์ž‘์ผ, ๋ณดํ˜ธ ์‹œ์ž‘ ์‹œ ์ƒํƒœ, ์ด๋ฆ„, ์„ฑ๋ณ„ ๋ฐ ์ค‘์„ฑํ™” ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
NAMETYPENULLABLE
ANIMAL_IDVARCHAR(N)FALSE
ANIMAL_TYPEVARCHAR(N)FALSE
DATETIMEDATETIMEFALSE
INTAKE_CONDITIONVARCHAR(N)FALSE
NAMEVARCHAR(N)TRUE
SEX_UPON_INTAKEVARCHAR(N)FALSE

๋™๋ฌผ ๋ณดํ˜ธ์†Œ์— ๊ฐ€์žฅ ๋จผ์ € ๋“ค์–ด์˜จ ๋™๋ฌผ์˜ ์ด๋ฆ„์„ ์กฐํšŒํ•˜๋Š” SQL ๋ฌธ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.


SQL

SELECT NAME 
FROM (SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME asc) 
WHERE rownum = 1;

๋จผ์ € ์‹คํ–‰์ด ๋˜๋Š” FROM์ ˆ์—์„œ DATETIME์˜ ๊ฐ’์„ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•œ ํ…Œ์ด๋ธ”์„ ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค. (SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME asc)

Oracle์€ Topํ•จ์ˆ˜๊ฐ€ ์—†์œผ๋‹ˆ rownum์„ ํ†ตํ•˜์—ฌ ์ถœ๋ ฅํ•  ํ–‰์˜ ๊ฐฏ์ˆ˜๋ฅผ ์„ ์–ธํ•ฉ๋‹ˆ๋‹ค.

-- sql server 
top(int) : ํ…Œ์ด๋ธ” ์ƒ์œ„์—์„œ๋ถ€ํ„ฐ int์˜ ๊ฐ’๋งŒํผ์˜ ํ–‰์„ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. SELECT๋ฌธ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

-- oracle
rownum : ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ถœ๋ ฅ ํ–‰์˜ ๊ฐฏ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. WHERE๋ฌธ์—์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€