-
[๋ฐฑ์ค] 10384 ํฌ๊ทธ๋จ with PythonPS 2022. 3. 3. 19:20728x90๋ฐ์ํ
๐ BOJ 10384 ํฌ๊ทธ๋จ
๐ก ์กฐ๊ฑด
ํฌ๊ทธ๋จ์ ๋ชจ๋ ์ํ๋ฒณ์ ์ ์ด๋ ํ ๋ฒ์ฉ์ ์ฌ์ฉํ ์์ด ๋ฌธ์ฅ์ ๋งํ๋ค.
๋๋ธ ํฌ๊ทธ๋จ์ ๋ชจ๋ ์ํ๋ฒณ์ ์ ์ด๋ ๋ ๋ฒ์ฉ์ ์ฌ์ฉํ ๋ฌธ์ฅ์ ๋งํ๊ณ , ํธ๋ฆฌํ ํฌ๊ทธ๋จ์ ๋ชจ๋ ์ํ๋ฒณ์ ์ ์ด๋ ์ธ ๋ฒ์ฉ์ ์ฌ์ฉํ ๋ฌธ์ฅ์ ๋งํ๋ค.
์ ๋ ฅ์ ์ฌ๋ฌ ์ค์ ํ ์คํธ์ผ์ด์ค๋ค๋ก ์ด๋ฃจ์ด์ง๋ค.
์ฒซ์งธ ์ค์ ํ ์คํธ์ผ์ด์ค์ ์ n์ด ์ฃผ์ด์ง๋ค.
๊ฐ ํ ์คํธ์ผ์ด์ค๋ ์์ด ์๋ฌธ์์ ๋๋ฌธ์, ํน์๊ธฐํธ๋ค๋ก ์ด๋ฃจ์ด์ง๋ค.ํฌ๊ทธ๋จ์ด ์๋ ๊ฒฝ์ฐ - Not a pangram
ํฌ๊ทธ๋จ์ผ ๊ฒฝ์ฐ - Pangram!
๋๋ธ ํฌ๊ทธ๋จ์ผ ๊ฒฝ์ฐ - Double pangram!!
ํธ๋ฆฌํ ํฌ๊ทธ๋จ์ผ ๊ฒฝ์ฐ - Triple pangram!!!๊ตฌํ ์ ํ์ ๋ฌธ์
๐ฅ ์์ค ์ฝ๋
from sys import stdin for i in range(1, int(stdin.readline()) + 1): res = 'Not a pangram' string = stdin.readline().rstrip() alphabet = [[False] * 26 for _ in range(3)] for j in string: idx = 0 if not j.isalpha(): continue else: while 1: if not alphabet[idx][ord(j.lower()) - 97]: alphabet[idx][ord(j.lower()) - 97] = True break else: idx += 1 if idx > 2: idx = 0 break cnt = 0 for data in alphabet: if False in data: break else: cnt += 1 if cnt == 1: res = 'Pangram!' elif cnt == 2: res = 'Double pangram!!' elif cnt == 3: res = 'Triple pangram!!!' print('Case {}: {}'.format(i, res))
๐ ์์ ๋ฐ ์คํ๊ฒฐ๊ณผ
์์
3 The quick brown fox jumps over a lazy dog. The quick brown fox jumps over a laconic dog. abcdefghijklmNOPQRSTUVWXYZ-zyxwvutsrqpon 2013/2014 MLKJIHGFEDCBA
์คํ๊ฒฐ๊ณผ
Case 1: Pangram! Case 2: Not a pangram Case 3: Double pangram!!
โจ๏ธ ๋ฌธ์ ํ์ด
ํ ์คํธ์ผ์ด์ค๋งํผ ๋ฐ๋ณต๋ฌธ์ ์งํํ๋ฉด์, ๊ฒฐ๊ณผ๊ฐ์ ์ ์ฅํ res ๋ณ์๋ฅผ 'Not a pangram'์ผ๋ก ์ด๊ธฐํํ๋ค.
string์ ์ด๋ค ๊ฒ์ฌํ ๋ฌธ์์ด์ ์ ๋ ฅ๋ฐ๊ณ , ์ํ๋ฒณ์ ๋ช๋ฒ ์ผ๋์ง ๊ฒ์ฌํ alphabet ์ด๋ผ๋ 2์ฐจ์ ๋ฐฐ์ด์ ๋ง๋ ๋ค.
string์ ์ํํ๋ฉด์ ์ํ๋ฒณ์ด ์๋ ๊ฒฝ์ฐ continue, ์ํ๋ฒณ์ผ ๊ฒฝ์ฐ ํด๋น ์ํ๋ฒณ์ True๋ก ์ฒดํฌํด์ฃผ๋ฉด๋๋ค.
์ต๋ ํธ๋ฆฌํ ํฌ๊ทธ๋จ๊น์ง ๋ฐ์ ์์ผ๋ idx ๋ฅผ 0๋ถํฐ ์์ํ์ฌ 2๊น์ง ๋๋ ค์ฃผ๊ณ , ๋ค์ 0์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ์์ ์ ํตํด์ ์ํ๋ฒณ์ด ์ฌ์ฉ๋์๋์ง ์ฒดํฌํ๋ค.
alphabet ๋ฆฌ์คํธ๋ฅผ ์ํํ๋ฉด์ ๋ฆฌ์คํธ์ False๊ฐ ์๋ค๋ฉด cnt + 1, ์๋ค๋ฉด break๋ฅผ ํ๋ค.
cnt์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ res๋ฅผ ๊ฐฑ์ ํ๊ณ ์ถ๋ ฅ์์์ ๋ง๊ฒ ์ถ๋ ฅํ๋ค.
๐พ ๋๋์
- dict๋ก๋ ํ์ ์์ง ์์๊น? ๋ผ๋ ์๊ฐ์ด ๋ ๋ค.
๋ฐ์ํ'PS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 16935 ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ 3 with Python (0) 2022.03.04 [๋ฐฑ์ค] 15965 K๋ฒ์งธ ์์ with Python (0) 2022.03.04 [๋ฐฑ์ค] 9742 ์์ด with Python (0) 2022.03.03 [๋ฐฑ์ค] 8394 ์ ์ with Python (0) 2022.03.02 [๋ฐฑ์ค] 6443 ์ ๋๊ทธ๋จ with Python (0) 2022.03.02