[TIL #35] 35์ผ์ฐจ ์˜ค๋Š˜์˜ ๊ณต๋ถ€ (2023.04.10 ์›”)

2023. 4. 10. 22:51ใ†Today I Learned

 

TIL 2023.04.10 ๐Ÿฃ

์˜ค๋Š˜ ๋ฐฐ์šด ๊ฒƒ ๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป

 

์•Œ๊ณ ๋ฆฌ์ฆ˜

  • ๋ฐฑ์ค€ 9019 : D/S/L/R ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ a->b๋กœ ๋ฐ”๊พธ๋Š” ์ตœ์†Œํ•œ์˜ ๋ช…๋ น์–ด ๋‚˜์—ด์„ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ
    ๋ธŒ๋ฃจํŠธํฌ์Šค์ธ๊ฐ€? ๊ณ ๋ฏผ ๋งŽ์ด ํ–ˆ๋Š”๋ฐ
    ์•Œ๊ณ ๋ณด๋‹ˆ BFS ํ˜น์€ DFS ๋กœ ํ’€๋ฆฌ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์กฐํ•ฉ ๊ตฌํ•˜๋“ฏ์ด ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ ํƒ์ƒ‰ํ•ด๋‚˜๊ฐ€๋ฉด ๋œ๋‹ค!
    * ์ฃผ์˜ํ•ด์•ผํ•  ์  : L ๋˜๋Š” R ๋ช…๋ น์–ด๋ฅผ ํ•  ๋•Œ 123 ์— R์„ ์ˆ˜ํ–‰ํ•˜๋ฉด→ 312์ด ์•„๋‹ˆ๋ผ 123์€ 0123์ด๊ธฐ ๋•Œ๋ฌธ์— 3012๊ฐ€ ๋˜๋Š” ์ ์„ ๊ณ ๋ คํ•ด์•ผํ•œ๋‹ค.
    ๊ณ„์† ์‹œ๊ฐ„์ดˆ๊ณผ์—๋Ÿฌ๊ฐ€ ๋‚ฌ๋Š”๋ฐ PyPy๋กœ ์ฑ„์ ํ•˜๋‹ˆ๊นŒ ๋งž์•˜๋‹ค.
# DSLR
import sys
from collections import deque
def func_D(n):
    return (2 * n) % 10000
def func_S(n):
    return n - 1 if n > 0 else 9999
def func_L(n):
    s_n = str(n).zfill(4)
    return int(s_n[1:] + s_n[0])
def func_R(n):
    s_n = str(n).zfill(4)
    return int(s_n[-1] + s_n[:-1])

t = int(sys.stdin.readline().rstrip())
for _ in range(t):
    visited = [False] * (10000)
    a, b = map(int, sys.stdin.readline().rstrip().split())
    queue = deque()
    visited[a] = True
    queue.append((a, ""))

    # a->b๋กœ ๋ณ€ํ•˜๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜ ํƒ์ƒ‰
    while queue:
        now, cmd = queue.popleft()

        if now == b:
            print(cmd)
            break

        now_D = func_D(now)
        now_S = func_S(now)
        now_L = func_L(now)
        now_R = func_R(now)

        if not visited[now_D]:
            visited[now_D] = True
            queue.append((now_D, cmd + "D"))

        if not visited[now_S]:
            visited[now_S] = True
            queue.append((now_S, cmd + "S"))

        if not visited[now_L]:
            visited[now_L] = True
            queue.append((now_L, cmd + "L"))

        if not visited[now_R]:
            visited[now_R] = True
            queue.append((now_R, cmd + "R"))

๐Ÿ‘‡ L๊ณผ R ๋ช…๋ น์€ ์ˆซ์ž๋ฅผ ์ด๋ ‡๊ฒŒ ๋ณ€ํ™˜ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

def func_L(n):
    # ์ฒœ์˜ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ผ์˜ ์ž๋ฆฌ๋กœ
    return (n % 1000 * 10) + (n // 1000)   
def func_R(n):
    # ์ผ์˜ ์ž๋ฆฌ ์ˆซ์ž๋ฅผ ์ฒœ์˜ ์ž๋ฆฌ๋กœ
    return (n % 10 * 1000)+ (n // 10)
  • ๋ฐฑ์ค€ 2457 : ๊ณต์ฃผ๋‹˜์˜ ์ •์›, ๊ทธ๋ฆฌ๋”” ๋ฌธ์ œ.
    ์ด๊ฒƒ๋„ ์–ด๋ ค์› ๋‹ค.............ํ•˜์ง€๋งŒ. .. ๊ทธ๋ž˜๋„ ํฌ๊ธฐํ•˜์ง€ ์•Š๊ธฐ.......

SQL

  • ์˜ค๋žœ๋งŒ์— SQL ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ๋‹ค. SQL์€ ์ •๋ง ์‰ฝ๊ณ  ์žฌ๋ฐŒ๋‹ค. ๊ทผ๋ฐ MSSQL ๋ฌธ๋ฒ•์— ์ต์ˆ™ํ•˜๋‹ค๋ณด๋‹ˆ MySQL์˜ ํ•จ์ˆ˜๋Š” ์ข€ ์ต์ˆ™ํ•˜์ง€๊ฐ€ ์•Š๋‹ค.
    ์ต์ˆ™ํ•ด์ง€๋„๋ก ์—ฌ๋Ÿฌ๋ฒˆ ์จ๋ด์•ผ๊ฒ ๋‹ค. ๊ฒŒ์‹œ๋ฌผ๋กœ๋„ ๊ธฐ๋กํ•˜๋ฉด ๊ธฐ์–ต์ด ์ž˜ ๋‚  ๊ฒƒ ๊ฐ™์•„ ํฌ์ŠคํŒ… ํ–ˆ๋‹ค.

    2023.04.10 - [MySQL] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์„œ์šธ์— ์œ„์น˜ํ•œ ์‹๋‹น ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ

    2023.04.10 - [MySQL] Date Format ๋ณ€ํ™˜

  • UNION ๊ณผ UNION ALL ์ฐจ์ด
    : ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์„ ํ•ฉ์น˜๋ฉฐ ์ค‘๋ณต ์ œ๊ฑฐ๋ฅผ ํ•˜๋Š๋ƒ ์•ˆํ•˜๋Š๋ƒ์˜ ์ฐจ์ด.
    UNION์€ ์ค‘๋ณต์ œ๊ฑฐ๋ฅผ ํ•˜๋ฉด์„œ ์ •๋ ฌ์„ ํ•œ๋‹ค.
    UNION ALL์€ ์ค‘๋ณต์ œ๊ฑฐ๋ฅผ ํ•˜์ง€ ์•Š๋Š”๋‹ค.

  • MySQL "Every derived table must have its own alias" ์—๋Ÿฌ 
    > ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์— AliasName์„ ์ง€์ •ํ•˜์ง€ ์•Š์•„์„œ ์ƒ๊ธฐ๋Š” ์—๋Ÿฌ.

 

์ถ”๊ฐ€์ ์œผ๋กœ ํ•˜๋ฉด ์ข‹์„ ๊ฒƒ

 

๊ธฐํƒ€ ๐Ÿค”