Algorithm Problem/Python

[python] SWEA - 4261. ๋น ๋ฅธ ํœด๋Œ€์ „ํ™” ํ‚คํŒจ๋“œ

deo2kim 2020. 8. 17. 08:51
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

1. D5 | ์ด๊ฒŒ ์™œ D5?

2. ํ‚คํŒจ๋“œ ๋ฆฌ์ŠคํŠธ๋‚˜ ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ๋งŒ๋“ ๋‹ค.

3. ๊ฐ๊ฐ์˜ ๋‹จ์–ด๋“ค์„ ํ•œ๊ธ€์ž ํ•œ๊ธ€์ž ์ฒดํฌํ•œ๋‹ค.

4. ๋‹จ์–ด ์•ˆ์˜ ํ•œ๊ธ€์ž๊ฐ€ ๋ˆ„๋ฅธ ํ‚คํŒจ๋“œ์˜ ๋ฌธ์ž ์•ˆ์— ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์ฒดํฌ๋ฅผ ๋ฉˆ์ถ”๊ณ 

5. ๋ชจ๋‘ ํ†ต๊ณผํ•˜๋ฉด ์นด์šดํŠธ๋ฅผ ์„ธ์–ด์ค€๋‹ค.

 

๐Ÿ’จ D5๋ผ์„œ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋‹จ์–ด๋ฅผ ๊ตฌํ•˜๊ณ  ํฌํ•จ๊ด€๊ณ„๋ฅผ ๊ตฌํ•ด์คฌ๋Š”๋ฐ ํ‹€๋ ธ๋‹ค. ํ˜น์‹œ๋‚˜ ํ•ด์„œ ๋‹จ์ˆœํ•˜๊ฒŒ ์ ‘๊ทผํ–ˆ๋”๋‹ˆ ์‰ฝ๊ฒŒ ํ’€๋ ธ๋‹ค. D5๊ฐ€ ์•„๋‹Œ๊ฑฐ ๊ฐ™๋‹ค...

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

 keypad = {
    '2': ['a', 'b', 'c'],
    '3': ['d', 'e', 'f'],
    '4': ['g', 'h', 'i'],
    '5': ['j', 'k', 'l'],
    '6': ['m', 'n', 'o'],
    '7': ['p', 'q', 'r', 's'],
    '8': ['t', 'u', 'v'],
    '9': ['w', 'x', 'y', 'z'],
}

for tc in range(1, 1 + int(input())):
    s, n = input().split()
    words = input().split()
    
    cnt = 0
    for word in words:
        for i in range(len(word)):
            if word[i] not in keypad[s[i]]:
                break
        else:
            cnt += 1

    print('#{} {}'.format(tc, cnt))

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: SW Expert Academy

๋งํฌ: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWLL7kaaAPsDFAUW&categoryId=AWLL7kaaAPsDFAUW&categoryType=CODE

 

SW Expert Academy

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

swexpertacademy.com

๋™ํ•œ์ด๋Š” ์ฐฝ๊ณ ์—์„œ ์˜ค๋ž˜๋œ ์• ๋‹ˆ์ฝœ ํœด๋Œ€์ „ํ™”๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค.

์ด ํœด๋Œ€์ „ํ™”์˜ ํ‚คํŒจ๋“œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ƒ๊ฒผ๋‹ค.



์ด ํ‚คํŒจ๋“œ๋Š” ๊ฐ ํ‚ค๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ˆŒ๋Ÿฌ ์˜๋ฌธ์„ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, a๋ฅผ ์ž…๋ ฅํ•˜๋ ค๋ฉด 2๋ฅผ ํ•œ ๋ฒˆ, b๋ฅผ ์ž…๋ ฅํ•˜๋ ค๋ฉด 2๋ฅผ ๋‘ ๋ฒˆ ๋ˆ„๋ฅด๋Š” ์‹์ด๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ๋™ํ•œ์ด๋Š” ์ด ๋ฐฉ์‹์ด ๋„ˆ๋ฌด ๋Š๋ฆฌ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์—ฌ ๋ฌธ์ž์—ด์„ ๋น ๋ฅด๊ฒŒ ํƒ€์ดํ•‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ‚คํŒจ๋“œ๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐ”๊ฟ” ๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

์‚ฌ์šฉํ•  ๋‹จ์–ด๋“ค์„ ๋ฏธ๋ฆฌ ํœด๋Œ€ํฐ์— ์ €์žฅํ•œ ๋’ค, ํ•ด๋‹น ์•ŒํŒŒ๋ฒณ์ด ์จ์žˆ๋Š” ์ˆซ์ž๋ฅผ ํ•œ ๋ฒˆ์”ฉ๋งŒ ๋ˆ„๋ฅด๋ฉด ๊ฐ€๋Šฅํ•œ ์—ฌ๋Ÿฌ ๋‹จ์–ด ์ค‘์— ์‚ฌ์ „์— ์ €์žฅ๋œ ๋‹จ์–ด๋ฅผ ์ฐพ์•„์„œ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์˜ˆ๋ฅผ ๋“ค๋ฉด car๋ฅผ ์ž…๋ ฅํ•˜๋ ค๋ฉด 222, 2, 777์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์ด ์ •์ƒ์ด์ง€๋งŒ ์ด ์žํŒ์˜ ๊ฒฝ์šฐ 227์„ ์ž…๋ ฅํ•˜๋ฉด aap, aaq, …, ccs ๋“ฑ 3×3×4=36๊ฐœ์˜ ๋‹จ์–ด ์ค‘์— ์‚ฌ์ „์— ์กด์žฌํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์ถœ๋ ฅํ•ด์ค€๋‹ค.

ํ•˜์ง€๋งŒ ๋™ํ•œ์ด๋Š” ์ด ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ์ ์„ ๋ฐœ๊ฒฌํ•˜์˜€๋‹ค. ์ด ์˜ˆ์‹œ์˜ ๊ฒฝ์šฐ car๋Š” cap๊ณผ ํ‘œํ˜„์ด ๊ฒน์นœ๋‹ค๋Š” ์ ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ,

์ด์ฒ˜๋Ÿผ ํ‚ค ์ž…๋ ฅ์ด ๋™์ผํ•œ ๋‹จ์–ด๊ฐ€ ์—ฌ๋Ÿฟ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

๋™ํ•œ์ด๋Š” ์–ผ๋งˆ๋‚˜ ์ด๋Ÿฐ ๊ฒฝ์šฐ๊ฐ€ ์ž์ฃผ ๋ฐœ์ƒ๋˜๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด, ์‚ฌ์ „๊ณผ ํ‚ค ์ž…๋ ฅ์ด ์ฃผ์–ด์ง€๋ฉด ํ•ด๋‹นํ•˜๋Š” ํ‚ค ์ž…๋ ฅ๊ณผ ๋Œ€์‘๋˜๋Š” ๋‹จ์–ด๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์›ํ•œ๋‹ค.

์ด๋Ÿฌํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜๋ผ.


[์ž…๋ ฅ]

๋งจ ์œ„ ์ค„์— ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ์ˆœ์„œ๋Œ€๋กœ ์ฒซ ๋ฒˆ์งธ ์ค„์— ํ‚ค ์ž…๋ ฅ์„ ๋œปํ•˜๋Š” 2์—์„œ 9๊นŒ์ง€์˜ ์ž์—ฐ์ˆ˜๋กœ ์ด๋ฃจ์–ด์ง„ 1 ์ด์ƒ 1000 ์ดํ•˜ ๊ธธ์ด์˜ ๋ฌธ์ž์—ด S์™€ ๋‹จ์–ด์˜ ๊ฐœ์ˆ˜ N(1 ≤ N ≤ 1000)์ด ์ฃผ์–ด์ง„๋‹ค.

๊ทธ ๋‹ค์Œ ์ค„์— N๊ฐœ์˜ ๋‹จ์–ด(๋ชจ๋“  ๋‹จ์–ด์˜ ๊ธธ์ด๋“ค์˜ ํ•ฉ์€ 1000000 ์ดํ•˜)๊ฐ€ ๋„์–ด์“ฐ๊ธฐ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค.


[์ถœ๋ ฅ]

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋งˆ๋‹ค ํ‚ค ์ž…๋ ฅ์— ๋Œ€์‘๋˜๋Š” ์‚ฌ์ „ ์•ˆ์˜ ๋‹จ์–ด์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•˜๋ผ.


[Hint]

์ฒซ ๋ฒˆ์งธ ์ผ€์ด์Šค์—์„œ "mono"๊ฐ€ ์ˆซ์ž 6์— ๋Œ€์‘๋˜๋Š” ์œ ์ผํ•œ ๋‹จ์–ด์ด๋‹ค.

๋‘ ๋ฒˆ์งธ ์ผ€์ด์Šค์—์„œ ๋‘ ๋‹จ์–ด์˜ ์ฒซ์งธ ๊ธ€์ž๋Š” ์ˆซ์ž 5์—, ๋‘˜์งธ ๊ธ€์ž๋Š” ์ˆซ์ž 2์— ๋ชจ๋‘ ํ•ด๋‹น๋œ๋‹ค.

๋ฐ˜์‘ํ˜•