https://school.programmers.co.kr/learn/courses/30/lessons/131128
ํ๋ก๊ทธ๋๋จธ์ค
์ฝ๋ ์ค์ฌ์ ๊ฐ๋ฐ์ ์ฑ์ฉ. ์คํ ๊ธฐ๋ฐ์ ํฌ์ง์ ๋งค์นญ. ํ๋ก๊ทธ๋๋จธ์ค์ ๊ฐ๋ฐ์ ๋ง์ถคํ ํ๋กํ์ ๋ฑ๋กํ๊ณ , ๋์ ๊ธฐ์ ๊ถํฉ์ด ์ ๋ง๋ ๊ธฐ์ ๋ค์ ๋งค์นญ ๋ฐ์ผ์ธ์.
programmers.co.kr
๋์ด๋ : ํ
1. ์ฒ์ X๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ๋ณต๋ฌธ์ ๋๋ ธ์ผ๋ ์๊ฐ์ด๊ณผ .. ๋ฌธ์์ด ๊ธธ์ด๊ฐ ์ต๋ 3,000,000์ด์๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ์ด๊ณผ๊ฐ ๋๊ฑฐ๋ผ ์์ํจ.
2. 1 ~ 9 ๊น์ง ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ฐ๋ณต๋ฌธ์ ๋๋ฆผ. ๊ทผ๋ ์ด๊ฒ๋ ์๊ฐ์ด๊ณผ..
Counter ๋ฉ์๋์ ์๊ฐ ๋ณต์ก๋๋ O(N)์ผ๋ก ์๊ณ ์๋๋ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ์๊ฐ์ ๋ ์ค์ผ ์ ์์๊น
from collections import Counter
def solution(X, Y):
answer = ''
a = Counter(X)
b = Counter(Y)
for i in range(9,-1,-1) :
m = min(a[str(i)],b[str(i)])
answer += (str(i)*m)
# print(answer)
if not answer : return "-1"
if int(answer) == 0 : return "0"
return answer
3. ํํธ๋ฅผ ๋ดค๋๋ฐ ํ๋ณํ์ด ์๊ฐ๋ณด๋ค ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฐ๋ค๊ณ ํด์ "000..." ์ผ ๊ฒฝ์ฐ๋ฅผ ๋ฐ๋ก ๋นผ์คฌ๋ค. ํต๊ณผ ๐ ๐
from collections import Counter
def solution(X, Y):
answer = ''
a = Counter(X)
b = Counter(Y)
for i in range(9,-1,-1) :
m = min(a[str(i)],b[str(i)])
if i == 0 and not answer and m > 0:
return "0"
answer += (str(i)*m)
if not answer : return "-1"
return answer
'์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค] ์ฐ์ ๋ถ๋ถ ์์ด ํฉ์ ๊ฐ์ (Python) (1) | 2022.12.21 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค] ์์ ์ฐพ๊ธฐ, ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (Python) (2) | 2022.11.24 |
[๋ฐฑ์ค] 11055 - ๊ฐ์ฅ ํฐ ์ฆ๊ฐ ๋ถ๋ถ ์์ด (DP) (0) | 2022.10.12 |
์๊ณ ๋ฆฌ์ฆ ํค์๋ (0) | 2022.09.29 |
[leetcode] 206๋ฒ Reverse Linked List (3) | 2022.05.07 |
๋๊ธ