Notice
Recent Posts
Link
Today
Total
10-06 03:25
๊ด€๋ฆฌ ๋ฉ”๋‰ด

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

 

**  ๊ณ„์†ํ•ด์„œ ์ถ”๊ฐ€ํ•˜๋Š” **

 

Comments