๐Ÿ’ก Coding Test/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์—ฐ์Šต๋ฌธ์ œ Lv1. ๋ฌธ์ž์—ด ๋‚ด p์™€ y์˜ ๊ฐœ์ˆ˜ (Python/ํŒŒ์ด์ฌ)

soozkim 2023. 5. 30. 22:07

์—ฐ์Šต๋ฌธ์ œ Lv1. ๋ฌธ์ž์—ด ๋‚ด p์™€ y์˜ ๊ฐœ์ˆ˜

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

๋ฌธ์ œ ์„ค๋ช…

๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๊ฐ€ ์„ž์—ฌ์žˆ๋Š” ๋ฌธ์ž์—ด s๊ฐ€ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. s์— 'p'์˜ ๊ฐœ์ˆ˜์™€ 'y'์˜ ๊ฐœ์ˆ˜๋ฅผ ๋น„๊ตํ•ด ๊ฐ™์œผ๋ฉด True, ๋‹ค๋ฅด๋ฉด False๋ฅผ return ํ•˜๋Š” solution๋ฅผ ์™„์„ฑํ•˜์„ธ์š”. 'p', 'y' ๋ชจ๋‘ ํ•˜๋‚˜๋„ ์—†๋Š” ๊ฒฝ์šฐ๋Š” ํ•ญ์ƒ True๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค. ๋‹จ, ๊ฐœ์ˆ˜๋ฅผ ๋น„๊ตํ•  ๋•Œ ๋Œ€๋ฌธ์ž์™€ ์†Œ๋ฌธ์ž๋Š” ๊ตฌ๋ณ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด s๊ฐ€ "pPoooyY"๋ฉด true๋ฅผ returnํ•˜๊ณ  "Pyy"๋ผ๋ฉด false๋ฅผ returnํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ์‚ฌํ•ญ

  • ๋ฌธ์ž์—ด s์˜ ๊ธธ์ด : 50 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜
  • ๋ฌธ์ž์—ด s๋Š” ์•ŒํŒŒ๋ฒณ์œผ๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

s answer
"pPoooyY" true
"Pyy" false

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

'p'์˜ ๊ฐœ์ˆ˜ 2๊ฐœ, 'y'์˜ ๊ฐœ์ˆ˜ 2๊ฐœ๋กœ ๊ฐ™์œผ๋ฏ€๋กœ true๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

 

์ž…์ถœ๋ ฅ ์˜ˆ #2

'p'์˜ ๊ฐœ์ˆ˜ 1๊ฐœ, 'y'์˜ ๊ฐœ์ˆ˜ 2๊ฐœ๋กœ ๋‹ค๋ฅด๋ฏ€๋กœ false๋ฅผ return ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜์˜ ํ’€์ด

1) ๋Œ€์†Œ๋ฌธ์ž ๊ตฌ๋ณ„ํ•˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ํ–ˆ์œผ๋ฏ€๋กœ lower() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ž์—ด s๋ฅผ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค

2) p์™€ y์˜ ๊ฐœ์ˆ˜๋ฅผ count()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ•˜๊ณ  ๊ฐ ๋ณ€์ˆ˜์— ๋‹ด์•„์ค€๋‹ค

3) p_cnt ์™€ y_cnt ๊ฐ€ ๊ฐ™์ง€ ์•Š์œผ๋ฉด False ๋ฐ˜ํ™˜ํ•˜๊ณ  ์ด์™ธ์—๋Š” True ๋ฐ˜ํ™˜(๊ฐœ์ˆ˜๊ฐ€ ๊ฐ™๊ฑฐ๋‚˜, ๋ชจ๋‘ ์กด์žฌํ•˜์ง€ ์•Š์„ ๋•Œ)

def solution(s):
    answer = True
    s = s.lower()
    p_cnt = s.count('p')
    y_cnt = s.count('y')

    if p_cnt != y_cnt:
        return False

    return True

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํ’€์ด

- collections ๋ชจ๋“ˆ์˜ Counter ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์˜€๋‹ค.

- ๋ฌธ์ž์—ด์„ ๋ชจ๋‘ ์†Œ๋ฌธ์ž๋กœ ๋ฐ”๊พผ ํ›„, y์˜ ๊ฐœ์ˆ˜์™€ p์˜ ๊ฐœ์ˆ˜ ๋น„๊ตํ•œ ๊ฐ’ ๋ฐ˜ํ™˜

- count() ํ•จ์ˆ˜ ์‚ฌ์šฉ๋ณด๋‹ค ๋”์šฑ ๊ฐ„๊ฒฐํ•˜๋‹ค

from collections import Counter
def numPY(s):
    c = Counter(s.lower())
    return c['y'] == c['p']

- Counter ์ดํ•ด์— ๋„์›€์ด ๋œ ์ฐธ๊ณ  ์‚ฌ์ดํŠธ 

 

ํŒŒ์ด์ฌ collections ๋ชจ๋“ˆ์˜ Counter ์‚ฌ์šฉ๋ฒ•

Engineering Blog by Dale Seo

www.daleseo.com

 

728x90