
ํด์ ํ ์ด๋ธ์ ํค(key)์ ๊ฐ(value)์ผ๋ก ๊ตฌ์ฑ๋ ์๋ฃ ๊ตฌ์กฐ๋ค.
ํ๋ก๊ทธ๋๋จธ์ค ์ฝ๋ฉํ
์คํธ ์ฐ์ต์ ์๋ ๋ฌธ์ ์
๋๋ค.
https://school.programmers.co.kr/learn/courses/30/lessons/42576
def solution(participant, completion):
d ={}
for x in participant:#์ฐธ๊ฐ์๋ฅผ ๋์
๋๋ฆฌํํ๋ก ์ ์ฅ
d[x] = d.get(x,0) + 1 #x๊ฐ ์์ผ๋ฉด ์๋ value ์์ผ๋ฉด 0์ ๋ฐํ
for x in completion:#์์ฃผ์๋ฅผ ์ฐธ๊ฐ์์์ ๋บ
d[x] -= 1
dnf = [k for k, v in d.items() if v > 0] #value๊ฐ 0 ๋ณด๋ค ํฐ ํค๊ฐ(์์ฃผ ๋ชปํ ์ฌ๋)๋ฐํ
answer = dnf[0]
return answer
๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ ๋จ๊ณ์์ ๊ทธ ์๊ฐ์ ์ต์ ์ด๋ผ๊ณ ์๊ฐ๋๋ ๊ฒ์ ์ ํํ๋ ๊ฒ์ด๋ค.
https://programmers.co.kr/learn/courses/30/lessons/42862#
์ฒด์ก๋ณต ๋ฌธ์ ๋ ์ ๋งํฌ ์ฐธ๊ณ ํ์ธ์!
def solution(n, lost, reserve):
all = [1]*(n+2)#์๋ค ๋ฒํธ๋ฅผ ํ์
ํ ๋ ๋งจ ์,๋ท์ฌ๋๋๋ฌธ์ ํ๋์ฉ ๋ ์ถ๊ฐํ๋ค.
for i in reserve:#์ฌ๋ฒ์ท์ด ์๋์ฌ๋ +1
all[i]+=1
for j in lost:#์ท์ ์์ด๋ฒ๋ฆฐ ์ฌ๋ -1
all[j]-=1
for i in range(1,n+1):#์์ฌ๋์ ๋จผ์ ๋๋ ์ฃผ๋ ๋ฐฉ์
if all[i-1]==0 and all[i] == 2:#์๊ธฐ ์์ฌ๋ ์ท์ด ์๊ณ ์๊ธฐ๊ฐ ์ฌ๋ฒ์ท์ด ์์ผ๋ฉด ๋๋ ์ค
all[i-1:i+1]=[1,1]
elif all[i+1]==0 and all[i] == 2:#๋ท์ฌ๋์ด ์์ผ๋ฉด ๋๋ ์ค
all[i:i+2]=[1,1]
else:
pass
answer = n-all.count(0)
return answer#len([x for x in all[1:-1] if x>0])
๋ฌธ์ ์ค๋ช
0 ๋๋ ์์ ์ ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ ์๋ฅผ ์ด์ด ๋ถ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์๋ฅผ ์์๋ด ์ฃผ์ธ์.
์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ์ ์๊ฐ [6, 10, 2]๋ผ๋ฉด [6102, 6210, 1062, 1026, 2610, 2106]๋ฅผ ๋ง๋ค ์ ์๊ณ , ์ด์ค ๊ฐ์ฅ ํฐ ์๋ 6210์
๋๋ค.
https://school.programmers.co.kr/learn/courses/30/lessons/42746
์์ธํ ๋ด์ฉ์ ์ ๋งํฌ ์ฐธ๊ณ !
def solution(numbers):
numbers = list(map(str,numbers))#๋ฌธ์์ด๋ก ๋ณ๊ฒฝ
numbers.sort(key=lambda x :(x*4)[:4],reverse = True) #๊ฐ ์ซ์๋ 1000์ดํ์ด๋ฏ๋ก :4๊น์ง
if numbers[0] == '0':#0์ดํ์ ์์๋ ๋ค์ด๊ฐ๋ฏ๋ก 0๋ง ์๋ ๋ฆฌ์คํธ์ผ ๋ ์ฒ๋ฆฌ
answer ='0'
else:
answer = ''.join(numbers)
return answer
๋ฌธ์ ์ค๋ช
์ด๋ค ์ซ์์์ k๊ฐ์ ์๋ฅผ ์ ๊ฑฐํ์ ๋ ์ป์ ์ ์๋ ๊ฐ์ฅ ํฐ ์ซ์๋ฅผ ๊ตฌํ๋ ค ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ์ซ์ 1924์์ ์ ๋ ๊ฐ๋ฅผ ์ ๊ฑฐํ๋ฉด [19, 12, 14, 92, 94, 24] ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ์ด ์ค ๊ฐ์ฅ ํฐ ์ซ์๋ 94 ์
๋๋ค.
https://school.programmers.co.kr/learn/courses/30/lessons/42883
์์ธํ ๋ด์ฉ์ ์ ๋งํฌ ์ฐธ๊ณ
def solution(number, k):
collected =[]
for i, num in enumerate(number):
while len(collected)>0 and collected[-1]< num and k>0: #collected์ ๋งจ ๋ง์ง๋ง์ ๋ค์ด๊ฐ ๋ฌธ์์๋ง ๋น๊ตํ๋ฉด ๋๋ค
collected.pop()
k-=1
if k == 0:#k๊ฐ 0์ผ๋ ๋๋จธ์ง ๋ค ์ด์ด ๋ถ์ธ๋ค.
collected += list(number[i:])
break
collected.append(num)
collected = collected[:-k] if k>0 else collected#๋นผ๋ผ ์ซ์๊ฐ ๋จ์์ ๊ฒฝ์ฐ
answer = ''.join(collected)#๋ฆฌ์คํธ์ ์ ์ฅ๋ ์ซ์๋ฅผ ์ด์ด๋ถ์
return answer