์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- ์ฑ์ฉํ์ ํ
- swagger
- 2024-08-21
- IOC
- Python
- reflection
- ๊ฐ์ฒด์งํฅํ๋ก๊ทธ๋๋ฐ
- Factory Method Pattern
- Kotlin
- fontstyle
- datepicker
- OpenAPI
- ํ๋ IT&E
- 2024-08-20
- udp
- http method
- FACTORY
- AndroidStudio
- OOP
- menutab
- tcp
- url
- ์ด๋ ธํ ์ด์
- ๊ธฐ์ด100์
- ์ฝ๋์
- Dialog
- URN
- uri
- di
- Android Studio
dingdong coding
[ ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค with ํ์ด์ฌ ] ๊ตฌํ ๋ฌธ์ ๋ณธ๋ฌธ
[ ์ด๊ฒ์ด ์ฝ๋ฉํ ์คํธ๋ค with ํ์ด์ฌ ] ๊ตฌํ ๋ฌธ์
๐ถ ๊ฐ๋ฐ๊ฐ๋ฐ ๐พ 2022. 6. 18. 19:59
1. ๋ญํค ์คํธ๋ ์ดํธ
• ๋ฌธ์
๊ฒ์์ ์์๋ณต์ ์บ๋ฆญํฐ๋ ํ์ด๊ธฐ์ธ '๋ญํค ์คํธ๋ ์ดํธ' ๊ธฐ์ ์ด ์์ต๋๋ค. ์ด ๊ธฐ์ ์ ๋งค์ฐ ๊ฐ๋ ฅํ ๋์ ์ ๊ฒ์ ๋ด์์ ์ ์๊ฐ ํน์ ์กฐ๊ฑด์ ๋ง์กฑํ ๋๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํน์ ์กฐ๊ฑด์ด๋ ํ์ฌ ์บ๋ฆญํฐ ์ ์๋ฅผ N์ด๋ผ๊ณ ํ ๋ ์๋ฆฟ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ์ N์ ๋ฐ์ผ๋ก ๋๋์ด ์ผ์ชฝ ๋ถ๋ถ์ ๊ฐ ์๋ฆฟ์ ํฉ๊ณผ ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ ๊ฐ ์๋ฆฟ์์ ํฉ์ ๋ํ ๊ฐ์ด ๋์ผํ ์ํฉ์ ์๋ฏธํฉ๋๋ค.
์๋ฅผ ๋ค์ด ํ์ฌ ์ ์๊ฐ 123,402๋ผ๋ฉด ์ผ์ชฝ ๋ถ๋ถ์ ์๋ฆฟ์์ ํฉ์ 1 + 2 + 3, ์ค๋ฅธ์ชฝ ๋ถ๋ถ์ ๊ฐ ์๋ฆฟ์์ ํฉ์ 4 + 0 + 2์ด๋ฏ๋ก ๋ ํฉ์ด 6์ผ๋ก ๋์ผํ์ฌ ๋ญํค ์คํธ๋ ์ดํธ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํ์ฌ ์ ์ N์ด ์ฃผ์ด์ง๋ฉด ๋ญํค ์คํธ๋ ์ดํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ํ์ธ์ง ์๋์ง๋ฅผ ์๋ ค์ฃผ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์
• ์ ๋ ฅ์กฐ๊ฑด
- ์ฒซ์งธ ์ค์ ์ ์ N์ด ์ฃผ์ด์ง๋ค. ๋จ ์ ์ N์ ์๋ฆฟ์๋ ํญ์ ์ง์์ธ ํํ๋ก๋ง ์ฃผ์ด์ง๋๋ค.
- ์๋ฅผ ๋ค์ด ์๋ฆฟ์๊ฐ 5์ธ 12,345์ ๊ฐ์ ์๋ ์ ๋ ฅ์ผ๋ก ๋ค์ด์ค์ง ์์ต๋๋ค.
• ์ถ๋ ฅ์กฐ๊ฑด
- ์ฒซ์งธ ์ค์ ๋ญํค ์คํธ๋ ์ดํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค๋ฉด "LUCKY"๋ฅผ, ์ฌ์ฉํ ์ ์๋ค๋ฉด "READY"๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
# ๋ญํค ์คํธ๋ ์ดํธ
arr = list(map(int, input()))
a = 0
b = 0
for i in range(len(arr)):
n = len(arr) / 2
if i < n:
a += arr[i]
else:
b += arr[i]
if a == b:
print("LUCKY")
else:
print("READY")
# ๋ญํค ์คํธ๋ ์ดํธ
n = input()
length = len(n) # ์ ์ ๊ฐ์ ์ด ์๋ฆฟ์
summary = 0
for i in range(length//2):
summary += int(n[i])
for i in range(length//2, length):
summary -= int(n[i])
if summary == 0:
print("LUCKY")
else:
print("READY")
2. ๋ฌธ์์ด ์ฌ์ ๋ ฌ
• ๋ฌธ์
์ํ๋ฒณ ๋๋ฌธ์(0~9)๋ก๋ง ๊ตฌ์ฑ๋ ๋ฌธ์์ด์ด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋๋ค. ์ด ๋ ๋ชจ๋ ์ํ๋ฒณ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ์ด์ด์ ์ถ๋ ฅํ ๋ค์, ๊ทธ ๋ค์ ๋ชจ๋ ์ซ์๋ฅผ ๋ํ ๊ฐ์ ์ด์ด์ ์ถ๋ ฅํฉ๋๋ค.
์๋ฅผ ๋ค์ด K1KA5CCB7์ด๋ผ๋ ๊ฐ์ด ๋ค์ด์ค๋ฉด ABCKK13์ ์ถ๋ ฅํฉ๋๋ค.
• ์ ๋ ฅ์กฐ๊ฑด
- ์ฒซ์งธ ์ค์ ํ๋์ ๋ฌธ์์ด S๊ฐ ์ฃผ์ด์ง๋๋ค.
• ์ถ๋ ฅ์กฐ๊ฑด
- ์ฒซ์งธ ์ค์ ๋ฌธ์ ์์ ์๊ตฌํ๋ ์ ๋ต์ ์ถ๋ ฅํฉ๋๋ค.
# ๋ฌธ์์ด ์ฌ์ ๋ ฌ
n = input()
a = []
b = []
for i in n:
if i.isdigit():
a.append(int(i))
else:
b.append(i)
c = sum(a)
b.sort()
b.append(str(c))
for i in b:
print(i, end='')
# ๋ฌธ์์ด ์ฌ์ ๋ ฌ
data = input()
result = []
value = 0
# ๋ฌธ์๋ฅผ ํ๋์ฉ ํ์ธํ๋ฉฐ
for x in data:
# ์ํ๋ฒณ์ธ ๊ฒฝ์ฐ ๊ฒฐ๊ณผ ๋ฆฌ์คํธ์ ์ฝ์
if x.isalpha():
result.append(x)
# ์ซ์๋ ๋ฐ๋ก ๋ํ๊ธฐ
else:
value += int(x)
# ์ํ๋ฒณ์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ
result.sort()
# ์ซ์๊ฐ ํ๋๋ผ๋ ์กด์ฌํ๋ ๊ฒฝ์ฐ ๊ฐ์ฅ ๋ค์ ์ฝ์
if value != 0:
result.append(str(value))
# ์ต์ข
๊ฒฐ๊ณผ ์ถ๋ ฅ(๋ฆฌ์คํธ๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ์ถ๋ ฅ)
print(''.join(result))
3. ๋ฌธ์์ด ์์ถ
• ๋ฌธ์
๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ๋ฌธ๊ฐ๊ฐ ๋๊ณ ์ถ์ "์ดํผ์น"๋ ๋ฌธ์์ด์ ์์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต๋ถ๋ฅผ ํ๊ณ ์์ต๋๋ค. ์ต๊ทผ์ ๋๋์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๊ฐ๋จํ ๋น์์ค ์์ถ ๋ฐฉ๋ฒ์ ๋ํด ๊ณต๋ถ๋ฅผ ํ๊ณ ์๋๋ฐ, ๋ฌธ์์ด์์ ๊ฐ์ ๊ฐ์ด ์ฐ์ํด์ ๋ํ๋๋ ๊ฒ์ ๊ทธ ๋ฌธ์์ ๊ฐ์์ ๋ฐ๋ณต๋๋ ๊ฐ์ผ๋ก ํํํ์ฌ ๋ ์งง์ ๋ฌธ์์ด๋ก ์ค์ฌ์ ํํํ๋ ์๊ณ ๋ฆฌ์ฆ์ ๊ณต๋ถํ๊ณ ์์ต๋๋ค.
๊ฐ๋จํ ์๋ก "aabbaccc"์ ๊ฒฝ์ฐ "2a2ba3c"(๋ฌธ์๊ฐ ๋ฐ๋ณต๋์ง ์์ ํ๋ฒ๋ง ๋ํ๋ ๊ฒฝ์ฐ 1์ ์๋ตํจ)์ ๊ฐ์ด ํํํ ์ ์๋๋ฐ, ์ด๋ฌํ ๋ฐฉ์์ ๋ฐ๋ณต๋๋ ๋ฌธ์๊ฐ ์ ์ ๊ฒฝ์ฐ ์์ถ๋ฅ ์ด ๋ฎ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค๋ฉด, "abcabcdede"์ ๊ฐ์ ๋ฌธ์์ด์ ์ ํ ์์ถ๋์ง ์์ต๋๋ค. "์ดํผ์น"๋ ์ด๋ฌํ ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋ฌธ์์ด์ 1๊ฐ ์ด์์ ๋จ์๋ก ์๋ผ์ ์์ถํ์ฌ ๋ ์งง์ ๋ฌธ์์ด๋ก ํํํ ์ ์๋์ง ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด๋ ค๊ณ ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, "ababcdcdababcdcd"์ ๊ฒฝ์ฐ ๋ฌธ์๋ฅผ 1๊ฐ ๋จ์๋ก ์๋ฅด๋ฉด ์ ํ ์์ถ๋์ง ์์ง๋ง, 2๊ฐ ๋จ์๋ก ์๋ผ์ ์์ถํ๋ค๋ฉด "2ab2cd2ab2cd"๋ก ํํํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก 8๊ฐ ๋จ์๋ก ์๋ผ์ ์์ถํ๋ค๋ฉด "2ababcdcd"๋ก ํํํ ์ ์์ผ๋ฉฐ, ์ด๋๊ฐ ๊ฐ์ฅ ์งง๊ฒ ์์ถํ์ฌ ํํํ ์ ์๋ ๋ฐฉ๋ฒ์ ๋๋ค.
๋ค๋ฅธ ์๋ก, "abcabcdede"์ ๊ฐ์ ๊ฒฝ์ฐ, ๋ฌธ์๋ฅผ 2๊ฐ ๋จ์๋ก ์๋ผ์ ์์ถํ๋ฉด "abcabc2de"๊ฐ ๋์ง๋ง, 3๊ฐ ๋จ์๋ก ์๋ฅธ๋ค๋ฉด "2abcdede"๊ฐ ๋์ด 3๊ฐ ๋จ์๊ฐ ๊ฐ์ฅ ์งง์ ์์ถ ๋ฐฉ๋ฒ์ด ๋ฉ๋๋ค. ์ด๋ 3๊ฐ ๋จ์๋ก ์๋ฅด๊ณ ๋ง์ง๋ง์ ๋จ๋ ๋ฌธ์์ด์ ๊ทธ๋๋ก ๋ถ์ฌ์ฃผ๋ฉด ๋ฉ๋๋ค.
์์ถํ ๋ฌธ์์ด s๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์์ ์ค๋ช ํ ๋ฐฉ๋ฒ์ผ๋ก 1๊ฐ ์ด์ ๋จ์๋ก ๋ฌธ์์ด์ ์๋ผ ์์ถํ์ฌ ํํํ ๋ฌธ์์ด ์ค ๊ฐ์ฅ ์งง์ ๊ฒ์ ๊ธธ์ด๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
• ์ ํ์ฌํญ
- s์ ๊ธธ์ด๋ 1 ์ด์ 1,000 ์ดํ์ ๋๋ค.
- s๋ ์ํ๋ฒณ ์๋ฌธ์๋ก๋ง ์ด๋ฃจ์ด์ ธ ์์ต๋๋ค.
• ์ ์ถ๋ ฅ ์
"aabbaccc" | 7 |
"ababcdcdababcdcd" | 9 |
"abcabcdede" | 8 |
"abcabcabcabcdededededede" | 14 |
"xababcdcdababcdcd" | 17 |
def solution(s):
answer = len(s)
# 1๊ฐ ๋จ์(step)๋ถํฐ ์์ถ ๋จ์๋ฅผ ๋๋ ค๊ฐ๋ฉฐ ํ์ธ
for step in range(1, len(s)//2+1):
compressed = ""
prev = s[0:step] # ์์์ ๋ถํฐ step๋งํผ์ ๋ฌธ์์ด ์ถ์ถ
count = 1
# ๋จ์ (step) ํฌ๊ธฐ ๋งํผ ์ฆ๊ฐ์ํค๋ฉฐ ์ด์ ๋ฌธ์์ด๊ณผ ๋น๊ต
for j in range(step, len(s), step):
# ์ด์ ์ํ์ ๋์ผํ๋ค๋ฉด ์์ถ(count) ํ์ ์ฆ๊ฐ
if prev == s[j:j +step]:
count+=1
# ๋ค๋ฅธ ๋ฌธ์์ด์ด ๋์๋ค๋ฉด
else:
compressed += str(count) + prev if count >= 2 else prev
prev = s[j:j + step] # ์ํ ์ด๊ธฐํ
count = 1
# ๋จ์์๋ ๋ฌธ์์ด ์ฒ๋ฆฌ
compressed += str(count) + prev if count >=2 else prev
# ๋ง๋ค์ด์ง๋ ์์ถ ๋ฌธ์์ด์ด ๊ฐ์ฅ ์งง์ ๊ฒ์ด ์ ๋ต
answer = min(answer, len(compressed))
return answer
** ๊ณ์ํด์ ์ถ๊ฐํ๋ **