๋ฌธ์ ๋ฆฟ์ฝ๋ 1338. Reduce Array Size to The Halfhttps://leetcode.com/problems/reduce-array-size-to-the-half/description/ ์ฝ๋class Solution(object): def minSetSize(self, arr): answer = 0 count_num = {} for num in arr: if num not in count_num.keys(): count_num[num] = 1 else: count_num[num] += 1 values = sorted(list(..
์ค๋ธ์ ํธ์์ฑ์ ์์ด ์ง์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด๋ธ๋ค.์ค๋ธ์ ํธ ๊ทธ ์์ฒด๊ฐ ๊ฐ์ฒด๊ฐ ๋ ์ ์๋ค. ๊ทธ๋์ ์์ฑ์๊ฐ ํ์ ์๋ค.ํด๋์ค๋ ๋ด๋ถ์ ์๋ ์์ฑ์ด๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด ์์ฑ์๋ฅผ ํตํด ์ค์ฒด๊ฐ ๋๋ ์ธ์คํด์ค ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ผํ๋ค.ํ์ง๋ง ์ฌ๋ฌ๊ฐ์ ์ธ์คํด์ค ๊ฐ์ฒด๊ฐ ํ์ํ์ง ์๊ณ ํ๋์ ๊ฐ์ฒด๋ง์ผ๋ก ๊ณตํต์ ์ธ ์์ฑ๊ณผ ํจ์๋ฅผ ์ฌ์ฉํด์ผํ๋ ์ฝ๋์์๋ ํด๋์ค๋ฅผ ์ธ ํ์ ์์ด ์ค๋ธ์ ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.์ฑ๊ธํค ํจํด์ ์ธ์ด์ฐจ์์์ ์ง์ํ๋๊ฒ์ด๋ค.์ฑ๊ธํค ํจํด : ํด๋์ค์ ๊ฐ์ฒด๋ฅผ ๋จ ํ๋๋ง ๋ง๋ค์ด ์ฌ์ฉํ๋๋ก ํ๋ ๋์์ธ ํจํด ์ค๋ธ์ ํธ ์์ ์๋ฌด๊ณณ์๋ ํธ์ถํ์ฌ ํธ์ถํ ํ์๋ฅผ ์ธ๊ฑฐ๋ ์ด๊ธฐํ ํ ์ ์๋ Counter๋ผ๋ ์ค๋ธ์ ํธ๋ฅผ ๋ง๋ค์ด๋ณด์.์ค๋ธ์ ํธ๋ ๋ณ๋์ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ์๊ธฐ ๋๋ฌธ์ ์ค๋ธ์ ํธ ์ด๋ฆ์ ์ง์ ์ฐธ์กฐ์ฐ์ฐ์๋ฅผ ๋ถ์ฌ์ ์ฌ์ฉํ๋ค.fu..
์ค์ฝํ ํจ์๋ฅผ ์์๋ณด๊ธฐ ์ ์ ๋๋ค ํจ์์ ํน๋ณํ ๊ธฐ๋ฅ ๋ช๊ฐ์ง๋ฅผ ์ดํด๋ณด์.๋๋ค ํจ์์ ํน๋ณํ ๊ธฐ๋ฅ๋ค๋๋ค ํจ์๋ ์ผ๋ฐ ํจ์์ฒ๋ผ ์ฌ๋ฌ ๊ตฌ๋ฌธ์ด ์ํ ๊ฐ๋ฅํ๋ค. ์ฐธ๊ณ ๋ก ๋๋ค ํจ์๊ฐ ์ฌ๋ฌ ์ค๋ก ๊ตฌํ๋๋ค๋ฉด ๋ง์ง๋ง ์ค์ ๊ฒฐ๊ณผ๊ฐ์ด ๋ฐํ๋๋ค.val c: (Int, Int) -> Int = {a,b -> println("$a $b") println("์ฌ๋ฌ๊ตฌ๋ฌธ") println("์ฌ์ฉํ ์ ์์ง๋กฑ!") a+b // a+b๊ฐ ๋ฐํ๋๋ค.}๋๋คํจ์์ ํ๋ผ๋ฏธํฐ๊ฐ ์๋ค๋ฉด ์คํํ ๊ตฌ๋ฌธ๋ค๋ง ๋์ดํ๋ฉด ๋๋ค.val a:() -> Unit = {println("ํ๋ผ๋ฏธํฐ ์์!!!")}ํ๋ผ๋ฏธํฐ๊ฐ ํ๋๋ฟ์ด๋ผ๋ฉด 'it'์ ์ฌ์ฉํ๋ค. ํ๋ผ๋ฏธํฐ ์ด๋ฆ์ ์๋ตํ๊ณ 'it'์ด๋ผ๋ ํค์๋๋ก ๋์ฒด ๊ฐ๋ฅํ๋ค.val c:(String) ->..
๊ณ ์ฐจํจ์ํจ์๋ฅผ ๋ง์น ํด๋์ค์์ ๋ง๋ค์ด๋ธ ์ธ์คํด์ค(๊ฐ์ฒด)์ฒ๋ผ ์ทจ๊ธํ๋ ๋ฐฉ๋ฒ์ด๋ค.ํจ์๋ฅผ ํ๋ผ๋ฏธํฐ(๋งค๊ฐ๋ณ์)์ด ๋๊ฒจ์ค ์๋ ์๊ณ , ๊ฒฐ๊ณผ๊ฐ์ผ๋ก ๋ฐํ๋ฐ์ ์๋ ์๋ ๋ฐฉ๋ฒ์ด๋ค.์ฝํ๋ฆฐ์์๋ ๋ชจ๋ ํจ์๋ฅผ ๊ณ ์ฐจํจ์๋ก ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. ๊ณ ์ฐจํจ์ ๊ตฌํ๋ฒfun main(){ b(::a)}fun a (str:String){ println("$str ํจ์ : a")}fun b (function: (String)->Unit) { function("b๊ฐ ํธ์ถํ")}์ถ๋ ฅb๊ฐ ํธ์ถํ ํจ์ : aํจ์ a๋ฅผ ๊ณ ์ฐจํจ์ ํ์์ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ์ ์ ์๊ฒ ๋ง๋ ๋ค.ํจ์๋ฅผ ์๋ฃํ์ผ๋ก ๋ํ๋ด๋ ๋ฐฉ๋ฒ์ ๊ดํธ ์์ ํจ์๊ฐ ๋ฐ์ ํ๋ผ๋ฏธํฐ์ ์๋ฃํ์ ๋์ดํ๊ณ '->'๋ก ํ์ดํ๋ฅผ ๋ง๋ ๋ค ํจ์์ ๋ฐํํ์ ์ฐ๋ฉด ๋๋ค.ํจ์ a๋ ๋ฐํํ์ด ์์ผ๋ ๊ฐ์ด..
์ค์ฝํํ๋ก์ ํธ ๊ตฌ์กฐ ๋ด์์ ๋ณ์, ํจ์, ํด๋์ค๋ค์ ์๋ก ๊ณต์ ํ๋ฉฐ ์ฌ์ฉํ ์ ์๋ ๊ณต์ฉ๋ฒ์๋ฅผ ์ ์ดํ๋ ๋จ์๋ค. ์ค์ฝํ๊ฐ ์ง์ ๋๋ ๋ฒ์ํจํค์ง ๋ด๋ถํจํค์ง ๋ด๋ถ์ ๋ณ์, ํจ์, ํด๋์ค๊ฐ ์๋ค๋ฉด ํจํค์ง ๋ด๋ถ์ ์๋ ์ด๋ค์ ๋ชจ๋ ํจํค์ง ๋ผ๋ ํ๋์ ์ค์ฝํ ์์ ์๋ ๋ฉค๋ฒ๋ค์ด๋ค.ํด๋์ค ๋ด๋ถํด๋์ค๋ ์ค์ฝํ ๊ธฐ๋ฅ์ ๊ฐ์ง ์ ์๋ค.ํด๋์ค ๋ด๋ถ์ ๋ณ์, ํจ์๊ฐ ์๋ค๋ฉด ํด๋์ค ๋ด๋ถ์ ์๋ ์ด๋ค์ ๋ชจ๋ ํด๋์ค ๋ผ๋ ํ๋์ ์ค์ฝํ ์์ ์๋ ๋ฉค๋ฒ๋ค์ด๋ค.ํจํค์ง ๋ด๋ถ์ ์๋ ์ค์ฝํ ๊ธฐ๋ฅ์ ํ๋ ํด๋์ค๋ ํ์ ์ค์ฝํ๋ผ๊ณ ๋ถ๋ฅธ๋ค.ํจ์ ๋ด๋ถํด๋์ค์ ์ค์ฝํ์ ๋ํ ๊ฐ๋
์ด ๋์ผํ๋ค. ์ค์ฝํ์ ๋ํ ์ธ๊ฐ์ง ๊ท์น์ค์ฝํ ์ธ๋ถ์์๋ ์ค์ฝํ ๋ด๋ถ์ ๋ฉค๋ฒ๋ฅผ '์ฐธ์กฐ ์ฐ์ฐ์'๋ก๋ง ์ฐธ์กฐ๊ฐ ๊ฐ๋ฅํ๋ค.๋์ผ ์ค์ฝํ ๋ด์์๋ ๋ฉค๋ฒ๋ค์ ๊ณต์ ํ ์ ์๋ค.val a ..
๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ"ํ๋ก์ ํธ > ๋ชจ๋ > ํด๋ & ํ์ผ" ๊ตฌ์กฐ๊ฐ ์ค์ ํ์ผ ์์คํ
์ ๊ธฐ๋ฐํ ๋ฌผ๋ฆฌ์ ๊ตฌ์กฐ๋ฅผ ๋ด๋นํ๋ค. ํ๋ก์ ํธ์ฝํ๋ฆฐ์ผ๋ก ์ดํ๋ฆฌ์ผ์ด์
์ ์งค ๋ ๊ด๋ จ๋ ๋ชจ๋ ๋ด์ฉ์ ๋ด๋ ํฐ ํ์ด๋ค. ๋ชจ๋ํ๋์ ํ๋ก์ ํธ๋ ์ฌ๋ฌ๊ฐ์ ๋ชจ๋๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.๋ชจ๋์ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ตฌํํ ์๋, ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ชจ๋์ ์ด์ฉํด ๋ถ์ผ ์๋ ์๋ค. ํด๋ & ํ์ผ๋ชจ๋์์๋ ์ฌ๋ฌ๊ฐ์ ํด๋์ ํ์ผ์ด ๋ค์ด๊ฐ ์๋ค.์ฝํ๋ฆฐ ์ฝ๋ํ์ผ ๋ฟ๋ง ์๋๋ผ ๋ชจ๋๊ด ๊ด๋ จ๋ ์ค์ ๋ฐ ๋ฆฌ์์ค ํ์ผ์ด ํฌํจ ๋ ์ ์๋ค. ๋
ผ๋ฆฌ์ ๊ตฌ์กฐํจํค์ง ํจํค์ง๊ฐ๋ฐ ์ ์์ค์ฝ๋์ ์์์ ์ง์ ํ๊ธฐ ์ํ ๋
ผ๋ฆฌ์ ๋จ์๋ค.์ฝ๋๋ฅผ ์์ฑ ํ ๋ ์ฝ๋ ์์์ ์ฌ์ฉํ๋ ์ด๋ฆ์ด ์ฉ๋์ ๋ฐ๋ผ ์๋ก ์ถฉ๋ํ์ง ์๋๋ก ์ ๋ํฌํ ํจํค์ง ์ด๋ฆ์ ๋ถ์ด๋๊ฒ์ด ์ข๋ค.์ผ๋ฐ์ ์ผ๋ก ํจํค์ง ์ด๋ฆ์ ์ง์ ๋๋ ๊ฐ๋ฐํ ํ์ฌ๊ฐ ..
๋ฌธ์ ๋ฆฟ์ฝ๋ 1845. Seat Reservation Managerhttps://leetcode.com/problems/seat-reservation-manager/ ์ฝ๋import heapqclass SeatManager: def __init__(self, n): self.can_reserve = list(range(1, n + 1)) heapq.heapify(self.can_reserve) def reserve(self): return heapq.heappop(self.can_reserve) def unreserve(self, seatNumber): heapq.heappush(self.can_reserve, seatNumber)..
๋ฌธ์ ๋ฆฟ์ฝ๋ 921. Minimum Add to Make Parentheses Valishttps://leetcode.com/problems/minimum-add-to-make-parentheses-valid/ ์ฝ๋class Solution(object): def minAddToMakeValid(self, s): s = deque(s) stack = [] item = s.popleft() stack.append(item) while s: item = s.popleft() if not stack: stack.append(item) else: ..
๋ฌธ์ 2390. Removing Stars From a String https://leetcode.com/problems/removing-stars-from-a-string/ ์ฝ๋class Solution(object): def removeStars(self, s): s = list(s) while '*' in s: for i in range(len(s)-1): if s[i + 1] == '*': s.pop(i+1) s.pop(i) break return ''.join(s) ํ์ดs = list(s)๋งค๊ฐ๋ณ์๋ก ๋ฐ์ ๋ฌธ์..
๋ฌธ์ ๋ฆฟ์ฝ๋ 1823. Find the Winner of the Circular Gamehttps://leetcode.com/problems/find-the-winner-of-the-circular-game/solutions/ ์ฝ๋class Solution: def findTheWinner(self, n: int, k: int) -> int: circle = [i for i in range(1, n+1)] count = 1 turn = 0 while len(circle) != 1: if count == k: circle.pop(turn) count = 1 ..
๋ฌธ์ ๋ฐฑ์ค ๊ฑธ๊ทธ๋ฃน ๋ง์คํฐ ์ค์์ด https://www.acmicpc.net/problem/16165 ์ฝ๋n, m = map(int, input().split()) # ๊ฑธ๊ทธ๋ฃน์ ์, ๋งํ์ผ ํ ๋ฌธ์ ์ ์idol_dic = {}for _ in range(n): team_name = input() team_member_num = int(input()) team_member = [] for _ in range(team_member_num): team_member.append(input()) idol_dic[team_name] = team_memberfor _ in range(m): quiz = input() quiz_type = int(input()) ..
๋ฌธ์ ๋ฐฑ์ค ์์ด๋ฒ๋ฆฐ ๊ดํธ https://www.acmicpc.net/problem/1541 ์ฝ๋formular = list(input())formular.append('-')have_to_sum = []have_to_sub = []operand = ''for letter in formular: if letter != '+' and letter != '-': operand += letter elif letter == '+': have_to_sum.append(int(operand)) operand = '' elif letter == '-': have_to_sum.append(int(operand)) have_to_sub.appen..