Skip to content

Instantly share code, notes, and snippets.

View shoark7's full-sized avatar
๐ŸŽฏ
Focusing on being better

Sunghwan Park shoark7

๐ŸŽฏ
Focusing on being better
View GitHub Profile
@shoark7
shoark7 / best_albums.py
Created October 8, 2019 02:14
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค - ํ•ด์‹œ - ๋ฒ ์ŠคํŠธ์•จ๋ฒ” ๋ฌธ์ œ
class Song:
def __init__(self, number, play):
self.number = number
self.play = play
class Genre:
def __init__(self, name):
self.name = name
self.song_list = [] # (song_index, its_played_count)
@shoark7
shoark7 / fibonacci.py
Created September 30, 2019 01:25
ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ•ด๋ฒ•
"""ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด๋ผ
ํ•จ์ˆ˜์˜ ๊ธฐ๋ณธ์ ์ธ ๊ณจ๊ฒฉ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๊ฒ๋‹ˆ๋‹ค.
f(n): {
0 : if n == 0
1 : if n == 1
f(n-1) + f(n-2) : else
}
"""
@shoark7
shoark7 / dict_comprehension.py
Last active September 30, 2019 00:51
easy busy dict maker
from string import ascii_lowercase as LOWERS
# ํ’€์ด 1.
ans = {}
for c, n in zip(LOWERS, range(1, len(LOWERS)+1)):
ans[c] = n
print(ans)
@shoark7
shoark7 / all_and_any_in_python.md
Last active September 28, 2019 04:21
we briefly look through all and any builtin functions in Python

0. ๋ชฉ์ 

์ด ์ž๋ฃŒ์—์„œ๋Š” ํŒŒ์ด์ฌ์˜ ๋‚ด์žฅ ํ•จ์ˆ˜์ธ all๊ณผ any ํ•จ์ˆ˜๋ฅผ ์‚ดํŽด๋ณผ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค. ์ด ํ•จ์ˆ˜๋Š” ๋•Œ๋กœ ๋งค์šฐ ์œ ์šฉํ•œ๋ฐ ์ด ํ•จ์ˆ˜๋“ค์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด Pythonic ํ•œ ์ฝ”๋“œ๋ฅผ ์งœ๊ธฐ ์‰ฝ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ ์ด๋ฒˆ ์Šคํ„ฐ๋””์—์„œ ๋‹ค๋ฃจ์‹œ๋Š” ๋ฌธ์ œ๋“ค ์ค‘์— ์ด ๋‘ ํ•จ์ˆ˜๋ฅผ ์“ฐ๋ฉด ์ฝ”๋“œ๊ฐ€ ์งง์•„์ง€๊ณ  ๊ฐ„๊ฒฐํ•ด์ง€๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋ช‡ ๊ฐœ ์žˆ๋”๋ผ๊ตฌ์š”. ๊ทธ๋ž˜์„œ ๋ช‡๋ช‡ ๋ถ„๋“ค๊ป˜ ์—ฌ์ญค๋ดค๋Š”๋ฐ ์ƒ๊ฐ๋ณด๋‹ค ๋˜๊ฒŒ ๊ฐ„๋‹จํ•œ ๋ฌธ๋ฒ•์ด์ง€๋งŒ ๋งŽ์ด ์•ˆ ์จ๋ณด์‹  ๊ฒƒ ๊ฐ™์•„์š”. ์ด ํ•จ์ˆ˜๋Š” zip ๊ณผ ๊ฐ™์€ ๋‚ด์žฅ ํ•จ์ˆ˜์ฒ˜๋Ÿผ ์ œ๋Œ€๋กœ ์•Œ๊ณ  ์ ์žฌ์ ์†Œ์— ์“ฐ๋ฉด ๊ธฐ๊ฐ€ ๋ง‰ํžˆ๊ฒŒ ์œ ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฌธ์„œ๋ฅผ ๋งŒ๋“ค์–ด๋ณด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.



1. ๋“ค์–ด๊ฐ€๊ธฐ์— ์•ž์„œ

๋…ผ์˜๋ฅผ ํŽธํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋…์„ ํ•˜๋‚˜ ์ •์˜ํ•˜๊ณ  ๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. ์ž˜ ์•„์‹œ๋‹ค์‹œํ”ผ ํŒŒ์ด์ฌ์—์„œ str, list, tuple, dict ๋“ฑ์€ for ๋ฌธ์—์„œ ์›์†Œ ํ•˜๋‚˜์”ฉ ์ˆœํšŒ ๊ฐ€๋Šฅํ•˜์ž–์•„์š”? ๋‹ค์‹œ ๋งํ•ด for๋ฌธ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ฃ . ํŒŒ์ด์ฌ์—์„œ ์ด๋Ÿฐ ์ž๋ฃŒํ˜•๋“ค์„ ํ†ตํ‹€์–ด์„œ Iterable(์ดํ•˜ "์ดํ„ฐ๋Ÿฌ๋ธ”")์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‹ค์ œ๋กœ ๊ณต์‹์ ์œผ๋กœ ์“ฐ๋Š” ์šฉ์–ด์ด๊ณ , ์‚ฌ์‹ค ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๊ด€๋ จ๋œ ํด๋ž˜์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ int, float ๋“ฑ์€ ๋ฐ˜๋ณต๋ฌธ์—์„œ ์“ธ ์ˆ˜๊ฐ€ ์—†์ฃ . ๋”ฐ๋ผ์„œ ์ด ์นœ๊ตฌ๋“ค์€ ์ดํ„ฐ๋Ÿฌ๋ธ”์ด ์•„๋‹™๋‹ˆ๋‹ค. all๊ณผ any๋Š” ์ดํ„ฐ๋Ÿฌ๋ธ”ํ•œ ์ž๋ฃŒํ˜•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@shoark7
shoark7 / is_prime.py
Created September 16, 2019 13:24
Judge whether given number is a prime number or not
"""์ž…๋ ฅ ๋ฐ›์€ ์ˆซ์ž๊ฐ€ ์†Œ์ˆ˜(prime number)์ธ์ง€ ํŒ๋‹จํ•˜๋ผ
:์ž…๋ ฅ: int | ํŒ๋‹จํ•  ์ •์ˆ˜. ํฌ๊ธฐ๋Š” 1 ์ด์ƒ, 10000 ์ดํ•˜
:์ถœ๋ ฅ: bool | ์ž…๋ ฅ ๋ฐ›์€ ์ •์ˆ˜๊ฐ€ ์†Œ์ˆ˜์ธ์ง€์˜ ์—ฌ๋ถ€
:์กฐ๊ฑด:
1. 1์€ ์›์น™์ƒ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
"""
# 1. ๊ฐ€์žฅ ์ •์˜์— ์ถฉ์‹คํ•œ ํ’€์ด
@shoark7
shoark7 / K๋ฒˆ์งธ์ˆ˜ & ์ฒด์œก๋ณต ์ฝ”๋“œ.md
Last active September 16, 2019 00:53
์Šคํ„ฐ๋”” ์ž˜ํ•˜์„ธ์š”! ํ™”์ดํŒ…..

๋„์›€์ด ๋ ์ง€ ๋ชจ๋ฅด๊ฒ ๋„ค์š”. ์™ผ์†๋‹˜ ์ฝ”๋“œ๋Š” ๋ญ์‹œ๋ƒ ๊ทธ๋ถ„์ด ์ €๋ณด๋‹ค ๋” ์ž˜ ์งœ์‹œ๊ฒ ์ฃ . ๋‹ต์ด ์žˆ๋‹ค๊ณ  ํ•˜๋‹ˆ ๊ตณ์ด ๋„ฃ์ง€๋Š” ์•Š๊ฒ ์Šต๋‹ˆ๋‹ค.

1. K๋ฒˆ์งธ ์ˆ˜

def solution(array, commands):
    ans = [] 
    for cmd in commands:
        start, end, k = cmd
 part = sorted(array[start-1:end])
from datetime import datetime
def get_day_of_week(N):
DAYS = '์›”ํ™”์ˆ˜๋ชฉ๊ธˆํ† ์ผ'
today_index = datetime.weekday(datetime.today())
return DAYS[(today_index + N) % 7]
@shoark7
shoark7 / expanded_parenthesis.py
Last active September 17, 2019 01:51
Let's check if a given parenthesis string is in a valid form.
def is_right_parenthesis(parens):
OPENERS = '([{'
CLOSERS = ')]}'
MAP = dict(zip(CLOSERS, OPENERS)) # { ')': '(', ']': '[', '}': '{' } ์™€ ๋™์ผ
stack = []
for p in parens:
if p in OPENERS:
stack.append(p)
else:
@shoark7
shoark7 / is_right_parenthesis.py
Last active September 8, 2019 09:13
์ฃผ์–ด์ง„ ๊ด„ํ˜ธ์‹์ด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์‹์ธ์ง€ ๊ฒ€์ฆํ•œ๋‹ค.
"""๊ด„ํ˜ธ์‹์„ ์ž…๋ ฅ๋ฐ›์•„ ์ด ๊ด„ํ˜ธ์‹์ด ์˜ณ์€ ํ˜•ํƒœ์˜ ๊ด„ํ˜ธ์‹์ธ์ง€ ๊ฒ€์ฆํ•˜๋ผ
:์ž…๋ ฅ: str | `(`์™€ `)`๋กœ ๊ตฌ์„ฑ๋œ ๋ฌธ์ž์—ด. ๊ธธ์ด๋Š” 0 ์ด์ƒ. (ex: `(())()()`)
:์ถœ๋ ฅ: bool | ์ž…๋ ฅ ๋ฌธ์ž์—ด์ด ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ธ์ง€ ์•„๋‹Œ์ง€์˜ ์—ฌ๋ถ€. (ex: `True`)
:์กฐ๊ฑด:
1. ์ž…๋ ฅ์—๋Š” `()` ์ด์™ธ์˜ ๊ทธ ์–ด๋–ค ๊ธ€์ž๋„ ๋“ค์–ด์˜ค์ง€ ์•Š๋Š”๋‹ค.
"""
def is_right_parenthesis(parens):
OPENER, CLOSER = '()'
@shoark7
shoark7 / caesar_cipher.py
Last active April 21, 2021 02:38
์†Œ๋ฌธ์ž ๋ฌธ์ž์—ด ์นด์ด์‚ฌ๋ฅด ์•”ํ˜ธ ๋งŒ๋“ค๊ธฐ
"""๋ฌธ์ž์—ด์„ ์ž…๋ ฅ๋ฐ›์•„ ์นด์ด์‚ฌ๋ฅด ์•”ํ˜ธ๋ฅผ ๋งŒ๋“ค์–ด๋ผ.
:์ž…๋ ฅ: str | ์˜์–ด ์†Œ๋ฌธ์ž ๋ฌธ์ž์—ด. ํฌ๊ธฐ๋Š” 0 ์ด์ƒ. (ex: `word`)
:์ถœ๋ ฅ: str | ๊ฐ ๊ธ€์ž๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 3์”ฉ ์˜ฎ๊ธด ์•”ํ˜ธ. (ex: `zrug`)
:์กฐ๊ฑด:
1. ์ž…๋ ฅ์—๋Š” ์˜์–ด ์†Œ๋ฌธ์ž ์ด์™ธ์˜ ๊ธ€์ž๋Š” ๋“ค์–ด์˜ค์ง€ ์•Š๋Š”๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋Œ€๋ฌธ์ž, ํ•œ๊ธ€, ๊ณต๋ฐฑ๋ฌธ์ž ๋“ฑ.
"""
def caesar_cipher(word):
UNICODE_BASE = ord('a')