๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 13417_์นด๋“œ ๋ฌธ์ž์—ด

๋ฟŒ์•ผ._. 2021. 10. 20. 16:17

Silver III

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/13417)

<์นด๋“œ ๋ฌธ์ž์—ด>

๋ฌธ์ œ 

 

N์žฅ์˜ ์นด๋“œ๊ฐ€ ์ผ๋ ฌ๋กœ ๋†“์—ฌ์žˆ๋‹ค. ๊ฐ ์นด๋“œ์—๋Š” ์•ŒํŒŒ๋ฒณ์ด ํ•˜๋‚˜์”ฉ ์ ํ˜€์žˆ๋‹ค. ํƒœ์šฑ์ด๋Š” ๊ฐ€์žฅ ์™ผ์ชฝ์— ์žˆ๋Š” ์นด๋“œ๋ถ€ํ„ฐ
์ฐจ๋ก€๋Œ€๋กœ ํ•œ ์žฅ์”ฉ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ๊ฐ€์žฅ ์ฒ˜์Œ์— ๊ฐ€์ ธ์˜จ ์นด๋“œ๋Š” ์ž์‹ ์˜ ์•ž์— ๋†“๋Š”๋‹ค. ๊ทธ๋‹ค์Œ๋ถ€ํ„ฐ๋Š” ๊ฐ€์ ธ์˜จ ์นด๋“œ๋ฅผ
์ž์‹ ์˜ ์•ž์— ๋†“์ธ ์นด๋“œ๋“ค์˜ ๊ฐ€์žฅ ์™ผ์ชฝ, ๋˜๋Š” ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ๋†“๋Š”๋‹ค. ํƒœ์šฑ์ด๋Š” ๋ชจ๋“  ์นด๋“œ๋ฅผ ๋‹ค ๊ฐ€์ ธ์˜จ ํ›„์— ์ž์‹ ์˜
์•ž์— ๋†“์ธ ์นด๋“œ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ์ด์–ด ๋ถ™์—ฌ ์นด๋“œ ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค๋ ค๊ณ  ํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด 3์žฅ์˜ ์นด๋“œ๊ฐ€ [M, K, U] ์ˆœ์œผ๋กœ ๋†“์—ฌ์žˆ๋‹ค๊ณ  ํ•˜์ž. ํƒœ์šฑ์ด๋Š” ๋จผ์ € ๊ฐ€์žฅ ์™ผ์ชฝ์— ์žˆ๋Š” “M”์ด ์ ํžŒ ์นด๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ์ž์‹ ์˜ ์•ž์— ๋†“๋Š”๋‹ค. ๋‹ค์Œ์œผ๋กœ ๋‚จ์€ ์นด๋“œ ์ค‘ ๊ฐ€์žฅ ์™ผ์ชฝ์— ์žˆ๋Š” “K”๊ฐ€ ์ ํžŒ ์นด๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ฐ€์žฅ ์™ผ์ชฝ์— ๋‘๊ณ , ์ด์–ด์„œ “U”๊ฐ€ ์ ํžŒ ์นด๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋‹ค์‹œ ๊ฐ€์žฅ ์™ผ์ชฝ์— ๋‘๋ฉด “UKM”์ด๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ๋งŒ์•ฝ “K”๊ฐ€ ์ ํžŒ ์นด๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ฐ€์žฅ ์™ผ์ชฝ์— ๋‘๊ณ , ์ด์–ด์„œ “U”๊ฐ€ ์ ํžŒ ์นด๋“œ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ฐ€์žฅ ์˜ค๋ฅธ์ชฝ์— ๋‘๋ฉด “KMU”๋ผ๋Š” ๋ฌธ์ž์—ด์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ, ํƒœ์šฑ์ด๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด ์ค‘ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฌธ์ž์—ด์€ “KMU”์ด๋‹ค.
N์žฅ์˜ ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์•ŒํŒŒ๋ฒณ์˜ ์ฒ˜์Œ ์ˆœ์„œ๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ํƒœ์šฑ์ด๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์นด๋“œ ๋ฌธ์ž์—ด ์ค‘ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

 

์ž…๋ ฅ ๋ฐ์ดํ„ฐ๋Š” ํ‘œ์ค€ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ž…๋ ฅ์€ T๊ฐœ์˜ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ž…๋ ฅ์˜ ์ฒซ์งธ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜
๊ฐœ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ž์—ฐ์ˆ˜ T๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ๊ฐ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์— ์ฒ˜์Œ์— ๋†“์—ฌ์žˆ๋Š” ์นด๋“œ์˜ ๊ฐœ์ˆ˜
N(1 ≤ N ≤ 1,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ ์ค„์—๋Š” N์žฅ์˜ ์นด๋“œ์— ์ ํžŒ ์•ŒํŒŒ๋ฒณ์˜ ์ดˆ๊ธฐ ์ˆœ์„œ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
๊ฐ€์žฅ ์™ผ์ชฝ์— ์žˆ๋Š” ์นด๋“œ์— ์ ํ˜€์žˆ๋Š” ์•ŒํŒŒ๋ฒณ๋ถ€ํ„ฐ ์ˆœ์„œ๋Œ€๋กœ N๊ฐœ๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค.
๋ชจ๋“  ์นด๋“œ์—๋Š” ํ•œ ๊ฐœ์”ฉ์˜ ์•ŒํŒŒ๋ฒณ์ด ์ ํ˜€์žˆ์œผ๋ฉฐ, ๋ชจ๋‘ ๋Œ€๋ฌธ์ž์ด๋‹ค. 

 

์ถœ๋ ฅ 

 

์ถœ๋ ฅ์€ ํ‘œ์ค€ ์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ž…๋ ฅ๋ฐ›์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด, ํ•œ ์ค„์— 1๊ฐœ์”ฉ ํƒœ์šฑ์ด๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž์—ด ์ค‘์—์„œ ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๊ฐ€์žฅ ๋น ๋ฅธ ๋ฌธ์ž์—ด์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

๋ฌธ์ œ ํ’€์ด

   - my solution

import sys

if __name__=='__main__':
    T=int(input()) # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜

    for i in range(T):
        N=int(input()) # ์นด๋“œ์˜ ๊ฐœ์ˆ˜
        arr=list(sys.stdin.readline().strip().split()) # ์นด๋“œ ์ž…๋ ฅ

        answer=arr[0] # ์ฒ˜์Œ ์นด๋“œ๋Š” ์ž์‹ ์˜ ์•ž์— ๋†“์Œ
        for i in range(1, len(arr)):
            if ord(answer[0])>=ord(arr[i]): # ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์•ž์ด๋ฉด
                answer=arr[i]+answer
            else: # ์‚ฌ์ „ ์ˆœ์œผ๋กœ ๋’ค๋ฉด
                answer+=arr[i]
        print(answer)

 

  • ์ฒ˜์Œ ์นด๋“œ๋Š” ์ž์‹ ์˜ ์•ž์— ๋†“์Œ == answer ์ดˆ๊ธฐํ™”
  • ์‚ฌ์ „ ์ˆœ์œผ๋กœ ์•ž์ด๋ฉด answer ์•ž์— ์ถ”๊ฐ€, ๋’ค๋ฉด answer ๋’ค์— ์ถ”๊ฐ€ == ord() ์•„์Šคํ‚ค์ฝ”๋“œ ํ™œ์šฉ

์ƒ๊ฐ๐Ÿค”

 

์‚ฌ์ „ ์ˆœ์œผ๋กœ ๋น„๊ต๋งŒ ํ•  ์ค„ ์•Œ๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.

์‚ฌ์ „ ์ˆœ์œผ๋กœ ๋น„๊ตํ•˜๊ธฐ ์œ„ํ•ด ์•„์Šคํ‚ค์ฝ”๋“œ๊ฐ€ ๋– ์˜ฌ๋ผ ํŒŒ์ด์ฌ์—์„œ ๋ฌธ์ž์—ด์„ ์•„์Šคํ‚ค์ฝ”๋“œ๋กœ ๋ฐ”๊พธ๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด์•˜๋‹ค.