https://school.programmers.co.kr/learn/courses/30/lessons/131128
๋ฌธ์
๋ฌธ์ ์ค๋ช
๋ ์ ์ X, Y์ ์์์ ์๋ฆฌ์์ ๊ณตํต์ผ๋ก ๋ํ๋๋ ์ ์ k(0 ≤ k ≤ 9)๋ค์ ์ด์ฉํ์ฌ ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์ ์๋ฅผ ๋ ์์ ์ง๊ฟ์ด๋ผ ํฉ๋๋ค(๋จ, ๊ณตํต์ผ๋ก ๋ํ๋๋ ์ ์ ์ค ์๋ก ์ง์ง์ ์ ์๋ ์ซ์๋ง ์ฌ์ฉํฉ๋๋ค). X, Y์ ์ง๊ฟ์ด ์กด์ฌํ์ง ์์ผ๋ฉด, ์ง๊ฟ์ -1์
๋๋ค. X, Y์ ์ง๊ฟ์ด 0์ผ๋ก๋ง ๊ตฌ์ฑ๋์ด ์๋ค๋ฉด, ์ง๊ฟ์ 0์
๋๋ค.
์๋ฅผ ๋ค์ด, X = 3403์ด๊ณ Y = 13203์ด๋ผ๋ฉด, X์ Y์ ์ง๊ฟ์ X์ Y์์ ๊ณตํต์ผ๋ก ๋ํ๋๋ 3, 0, 3์ผ๋ก ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์ ์์ธ 330์
๋๋ค. ๋ค๋ฅธ ์์๋ก X = 5525์ด๊ณ Y = 1255์ด๋ฉด X์ Y์ ์ง๊ฟ์ X์ Y์์ ๊ณตํต์ผ๋ก ๋ํ๋๋ 2, 5, 5๋ก ๋ง๋ค ์ ์๋ ๊ฐ์ฅ ํฐ ์ ์์ธ 552์
๋๋ค(X์๋ 5๊ฐ 3๊ฐ, Y์๋ 5๊ฐ 2๊ฐ ๋ํ๋๋ฏ๋ก ๋จ๋ 5 ํ ๊ฐ๋ ์ง ์ง์ ์ ์์ต๋๋ค.)
๋ ์ ์ X, Y๊ฐ ์ฃผ์ด์ก์ ๋, X, Y์ ์ง๊ฟ์ returnํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ ์ฌํญ
- 3 ≤ X, Y์ ๊ธธ์ด(์๋ฆฟ์) ≤ 3,000,000์ ๋๋ค.
- X, Y๋ 0์ผ๋ก ์์ํ์ง ์์ต๋๋ค.
- X, Y์ ์ง๊ฟ์ ์๋นํ ํฐ ์ ์์ผ ์ ์์ผ๋ฏ๋ก, ๋ฌธ์์ด๋ก ๋ฐํํฉ๋๋ค.
์ ์ถ๋ ฅ ์
X | Y | result |
"100" | "2345" | "-1" |
"100" | "203045" | "0" |
"100" | "123450" | "10" |
"12321" | "42531" | "321" |
"5525" | "1255" | "552" |
์์ค ์ฝ๋
# 1 (์๊ฐ ์ด๊ณผ)
def solution(X, Y):
answer = ""
inter = []
for x in X:
if x in Y:
inter.append(int(x))
Y = Y.replace(x,"",1)
inter.sort(reverse=True)
if len(inter) == 0:
answer = "-1"
elif inter[0] == 0:
answer = "0"
else:
for i in inter:
answer += str(i)
return answer
ํ์ด # 1
- ๊ต์งํฉ ์์๋ฅผ ๋ด์ inter ๋ฆฌ์คํธ ์์ฑ
- X๋ฅผ ๋๋ฉด์ X์ ์์๊ฐ Y์ ์์ผ๋ฉด inter ๋ฆฌ์คํธ์ ํด๋น ์์ ์ถ๊ฐํ๊ณ Y์์ ํด๋น ์์ ์ญ์
- replace("๋ฐ๊พธ๊ธฐ ์ ๋ฌธ์", "๋ฐ๊พผ ํ์ ๋ฌธ์", ๋ฐ๊พธ๊ณ ์ถ์ ๋ฌธ์ ๊ฐฏ์)
- inter ๋ฅผ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌ
- inter๊ฐ ์์ ๊ฒฝ์ฐ "-1", 0์ด ์ฌ๋ฌ๊ฐ์ธ ๊ฒฝ์ฐ์๋ "0"์ ์ถ๋ ฅ
- inter๊ฐ ์๊ณ 0์ด ์๋๋ผ๋ฉด ๋ฆฌ์คํธ๋ฅผ ๋๋ฉด์ ๋ฌธ์๋ฅผ answer์ ์ถ๊ฐ
# 2
def solution(X, Y):
answer = ""
numberX = [0]*10
numberY = [0]*10
# ๊ฐ ์ซ์๊ฐ ๋ช ๊ฐ์ฉ ์๋์ง ์นด์ดํธ
for x in X:
numberX[int(x)] += 1
for y in Y:
numberY[int(y)] += 1
# ๋ฐ๋ณต๋ฌธ์ ๋๋ฉด์ ์ถ๊ฐ
for idx in range(9,-1,-1):
if numberX[idx] > 0 and numberY[idx] > 0:
cnt = min(numberX[idx], numberY[idx])
answer += (str(idx) * cnt)
if answer == "":
answer = "-1"
elif answer[0] == "0":
answer = "0"
return answer
ํ์ด #2
- X์ Y์ ๊ฐ ์ซ์ ๊ฐฏ์๋ฅผ numberX์ numberY์ ์นด์ดํธ (๊ฐ ์ซ์ = ์ธ๋ฑ์ค)
- sort๋ฅผ ํ์ง ์๊ธฐ ์ํด ๊ฐ์ฅ ํฐ ์๋ถํฐ ๋ฐ๋ณต๋ฌธ
- numberX์ numberY์ ๋ ๋ค ์กด์ฌํ๋ฉด ๋ ์ค์ ์์ ์๋งํผ answer์ ์ถ๊ฐ
- ๊ต์งํฉ์ด ์๊ฑฐ๋ 0์ด ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ ์ฒ๋ฆฌ
๋ฌธ์ ์์ฒด๋ ๋จ์ํ๋ฐ ์ ํ ์ฌํญ์ ๋ณด๋ฉด ์ ์๊ฐ ์๋นํ ํด ์๋ ์๋ค๋ ์กฐ๊ฑด์ด ์๋ค. sort๋ฅผ ์ด์ฉํ๋ฉด ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ฏ๋ก sort๋ฅผ ์ฌ์ฉํ์ง ์๊ณ for๋ฌธ๋ 10๊ฐ ์ซ์ ๋ด์์ ๋๋๋ก ์ฝ๋๋ฅผ ์์ ํ์๋ค. ํต๊ณผ๋ ํ์ง๋ง ์๊ฐ์ด ์ ๊ฒ ๊ฑธ๋ฆฌ๋ ๊ฒ ๊ฐ์ง๋ ์๋ค. ์๊ฐ ๋ณต์ก๋๋ ๊ณ ๋ คํด์ ์ฝ๋๋ฅผ ์ง๋ ๊ฒ ์ค์ํ๋ฐ....์ด๋ ต๊ตฌ๋ง...
'์ฝ๋ฉ ๋ฌธ์ ํ์ด ๐ป > ํ๋ก๊ทธ๋๋จธ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.1 ๊ณต์ ์ฐ์ฑ (0) | 2024.01.05 |
---|---|
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.1 ๊ธฐ์ฌ๋จ์์ ๋ฌด๊ธฐ (1) | 2023.12.22 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.1 ์ฑ๊ฒฉ ์ ํ ๊ฒ์ฌํ๊ธฐ (1) | 2023.12.15 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 ๊ตฌ์ฌ์ ๋๋๋ ๊ฒฝ์ฐ์ ์ (0) | 2023.12.14 |
[ํ๋ก๊ทธ๋๋จธ์ค / ํ์ด์ฌ] Lv.0 ๊ฒน์น๋ ์ ๋ถ์ ๊ธธ์ด (1) | 2023.12.05 |