๐Ÿงฉ Algorithm/SWEA

[SWEA] 10912. ์™ธ๋กœ์šด ๋ฌธ์ž (Python/D3)

devCloud 2024. 11. 1. 18:39
728x90

[๋ฌธ์ œ ๋งํฌ] ๐Ÿ‘‡

 

SW Expert Academy

SW ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์—ญ๋Ÿ‰ ๊ฐ•ํ™”์— ๋„์›€์ด ๋˜๋Š” ๋‹ค์–‘ํ•œ ํ•™์Šต ์ปจํ…์ธ ๋ฅผ ํ™•์ธํ•˜์„ธ์š”!

swexpertacademy.com


Solution

T = int(input())  # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜
for test_case in range(1, T + 1):
    word = input().strip()
    word = sorted(word)  # ์ •๋ ฌํ•˜๊ธฐ

    result = ""
    for i in word:
        if word.count(i) % 2 != 0:
            if i not in result:
                result += i

    if len(result) == 0:
        result = "Good"

    print(f"#{test_case} {result}")

 

์ด ๋ฌธ์ œ์—์„œ๋Š” ๊ฐ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์ง์ง€์–ด ๋‚จ๋Š” ๋ฌธ์ž๋ฅผ ์ฐพ๊ธฐ ๋•Œ๋ฌธ์—, count() ํ•จ์ˆ˜๋ฅผ ๋ฐ˜๋ณต์ ์œผ๋กœ ํ˜ธ์ถœํ•˜์ง€ ์•Š๊ณ , ๋ฌธ์ž ๋นˆ๋„์ˆ˜๋ฅผ ์ €์žฅํ•œ ํ›„, ๊ฐ ๋ฌธ์ž๊ฐ€ ์ง์ด ๋งž์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ๋‚จ๋Š” ๋ฌธ์ž๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ด ๋” ํšจ์œจ์ ์ด๋‹ค. Counter๋ฅผ ํ™œ์šฉํ•ด ๊ฐ ๋ฌธ์ž์˜ ๋“ฑ์žฅ ํšŸ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ณ , ํ™€์ˆ˜ ๊ฐœ์ˆ˜์ธ ๋ฌธ์ž๋งŒ ๊ฒฐ๊ณผ์— ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ฐœ์„ ํ•  ์ 

  • Counter๋ฅผ ์‚ฌ์šฉํ•œ ๋นˆ๋„ ๊ณ„์‚ฐ
    • Counter๋Š” ๋ฌธ์ž์—ด ์ „์ฒด๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์ˆœํšŒํ•˜์—ฌ ๊ฐ ๋ฌธ์ž์˜ ๋นˆ๋„๋ฅผ ๊ธฐ๋กํ•˜๋ฏ€๋กœ ํšจ์œจ์ ์ด๋‹ค.
  • ์‚ฌ์ „ ์ˆœ์„œ
    • ์ตœ์ข…์ ์œผ๋กœ ๋‚จ๋Š” ๋ฌธ์ž๋ฅผ sorted()๋กœ ์ •๋ ฌํ•˜์—ฌ ์‚ฌ์ „ ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.
  • ์กฐ๊ฑด๋ถ€ ์ถ”๊ฐ€
    • count % 2 != 0 ์กฐ๊ฑด์„ ํ†ตํ•ด ํ™€์ˆ˜ ๊ฐœ์ˆ˜์ธ ๋ฌธ์ž๋งŒ ๋น ๋ฅด๊ฒŒ ์ถ”์ถœํ•œ๋‹ค.

 

์ตœ์ ํ™”๋œ ์ฝ”๋“œ

from collections import Counter

T = int(input())  # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ์ˆ˜
for test_case in range(1, T + 1):
    word = input().strip()
    char_count = Counter(word)  # ๊ฐ ๋ฌธ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์„ธ์–ด ์ €์žฅ

    # ํ™€์ˆ˜ ๊ฐœ์ˆ˜์ธ ๋ฌธ์ž๋งŒ ๋‚จ๊น€
    result = ''.join(sorted(char for char, count in char_count.items() if count % 2 != 0))

    # ๋‚จ๋Š” ๋ฌธ์ž๊ฐ€ ์—†๋‹ค๋ฉด "Good"์„ ์ถœ๋ ฅ
    if not result:
        result = "Good"

    print(f"#{test_case} {result}")

 

 

์ปดํ”„๋ฆฌํ—จ์…˜์„ ์“ฐ์ง€ ์•Š์€ ์ฝ”๋“œ

result = []
    for char, count in char_count.items():
        if count % 2 != 0:
            result.append(char)
    result = ''.join(sorted(result))

 


 

728x90