๋ฌธ์
ํ๊ธ ํ๋ก๊ทธ๋จ์ ๋ฉ๋ด์๋ ์ด N๊ฐ์ ์ต์ ์ด ์๋ค. ๊ฐ ์ต์ ๋ค์ ํ ๊ฐ ๋๋ ์ฌ๋ฌ ๊ฐ์ ๋จ์ด๋ก ์ต์ ์ ๊ธฐ๋ฅ์ ์ค๋ช ํ์ฌ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๋ ์์์๋ถํฐ ์ฐจ๋ก๋๋ก ๊ฐ ์ต์ ์ ๋จ์ถํค๋ฅผ ์๋ฏธํ๋ ๋ํ ์ํ๋ฒณ์ ์ง์ ํ๊ธฐ๋ก ํ์๋ค. ๋จ์ถํค๋ฅผ ์ง์ ํ๋ ๋ฒ์ ์๋์ ์์๋ฅผ ๋ฐ๋ฅธ๋ค.
- ๋จผ์ ํ๋์ ์ต์ ์ ๋ํด ์ผ์ชฝ์์๋ถํฐ ์ค๋ฅธ์ชฝ ์์๋ก ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ์ด๋ฏธ ๋จ์ถํค๋ก ์ง์ ๋์๋์ง ์ดํด๋ณธ๋ค. ๋ง์ฝ ๋จ์ถํค๋ก ์์ง ์ง์ ์ด ์ ๋์ด์๋ค๋ฉด ๊ทธ ์ํ๋ฒณ์ ๋จ์ถํค๋ก ์ง์ ํ๋ค.
- ๋ง์ฝ ๋ชจ๋ ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ์ด๋ฏธ ์ง์ ์ด ๋์ด์๋ค๋ฉด ์ผ์ชฝ์์๋ถํฐ ์ฐจ๋ก๋๋ก ์ํ๋ฒณ์ ๋ณด๋ฉด์ ๋จ์ถํค๋ก ์ง์ ์ ๋ ๊ฒ์ด ์๋ค๋ฉด ๋จ์ถํค๋ก ์ง์ ํ๋ค.
- ์ด๋ ํ ๊ฒ๋ ๋จ์ถํค๋ก ์ง์ ํ ์ ์๋ค๋ฉด ๊ทธ๋ฅ ๋๋๋ฉฐ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถ์น ์๋๋ค.
- ์์ ๊ท์น์ ์ฒซ ๋ฒ์งธ ์ต์ ๋ถํฐ N๋ฒ์งธ ์ต์ ๊น์ง ์ฐจ๋ก๋๋ก ์ ์ฉํ๋ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ์ต์ ์ ๊ฐ์ N(1 ≤ N ≤ 30)์ด ์ฃผ์ด์ง๋ค. ๋์งธ ์ค๋ถํฐ N+1๋ฒ์งธ ์ค๊น์ง ๊ฐ ์ค์ ์ต์ ์ ๋ํ๋ด๋ ๋ฌธ์์ด์ด ์ ๋ ฅ๋๋๋ฐ ํ๋์ ์ต์ ์ 5๊ฐ ์ดํ์ ๋จ์ด๋ก ํํ๋๋ฉฐ, ๊ฐ ๋จ์ด ์ญ์ 10๊ฐ ์ดํ์ ์ํ๋ฒณ์ผ๋ก ํํ๋๋ค. ๋จ์ด๋ ๊ณต๋ฐฑ ํ ์นธ์ผ๋ก ๊ตฌ๋ถ๋์ด์ ธ ์๋ค.
์ถ๋ ฅ
N๊ฐ์ ์ค์ ๊ฐ ์ต์ ์ ์ถ๋ ฅํ๋๋ฐ ๋จ์ถํค๋ก ์ง์ ๋ ์ํ๋ฒณ์ ์ข์ฐ์ [] ๊ดํธ๋ฅผ ์์์ ํํํ๋ค.
์์ ์ ๋ ฅ 1 ๋ณต์ฌ
5
New
Open
Save
Save As
Save All
์์ ์ถ๋ ฅ 1 ๋ณต์ฌ
[N]ew
[O]pen
[S]ave
Save [A]s
Sa[v]e All
์์ ์ ๋ ฅ 2 ๋ณต์ฌ
8
New window
New file
Copy
Undo
Format
Font
Cut
Paste
์์ ์ถ๋ ฅ 2 ๋ณต์ฌ
[N]ew window
New [f]ile
[C]opy
[U]ndo
F[o]rmat
Fon[t]
Cut
[P]aste
# ํ์ด ๋ฐฉ๋ฒ
์๋ก์ด ์์ด๋์ด๋ฅผ ๋ ์ฌ๋ฆด ๊ฑด ์์๊ณ ๊ทธ๋ฅ ํ๋์ฉ ๊ตฌํํ๋ฉด ๋๋ ๋ฌธ์
flag๋ก t/f ์ด๋ฐ๊ฑฐ ์ค์ ํ๋๊ฒ ์ด์ง ํท๊ฐ๋ ธ์
input_list ์์ฒด๋ฅผ ๋ฐ๊ฟ ์๊ฐ์ ์ค์ ๋ก๋ ๋ชปํ๊ณ ์ ๋ฆฌ์คํธ๋ฅผ ์ ๋ ฅ ๋ฐ์๊น ํ์๋๋ฐ ๋จ์ ์ฝ๋๋ฅผ ์ฐธ๊ณ ํ๋ค.
# ์ฝ๋1 - good
์ฝ๋2๋ก ์ฒ์ ํต๊ณผํ์ง๋ง, enumerate ํจ์์ ์ต์ํด์ง ์ดํ๋ก๋ ๋ ๋์์ง ํ์ด๋ฅผ ๊ตฌํํ ์ ์์๋ค.
์ฌ์ค์ ๋จ์ด๋ณ๋ก ์ ์ฅํ๋๊ฒ ๋ ๋ง์ด ๋๋๊น (sys.stdin.readline.split())
# 2025-05-02 14:44-15:13
import sys
sys.stdin = open("input.txt","r")
n = int(sys.stdin.readline().strip())
input_list = [list(sys.stdin.readline().split()) for _ in range(n)]
key_list = []
def return_key(words):
# ์ผ์ชฝ์์๋ถํฐ ์ค๋ฅธ์ชฝ ์์๋ก ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ์ด๋ฏธ ๋จ์ถํค๋ก ์ง์ ๋์๋์ง
for (i,word) in enumerate(words):
if word[0].upper() not in key_list:
key_list.append(word[0].upper())
word = '[' + word[0] + ']' + word[1:]
words[i] = word
return
# ์ด๋ ํ ๊ฒ๋ ๋จ์ถํค๋ก ์ง์ ํ ์ ์๋ค๋ฉด ๊ทธ๋ฅ ๋๋๋ฉฐ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถ์น ์๋๋ค.
for (i, word) in enumerate(words):
for (j, w) in enumerate(word):
if w.upper() not in key_list:
key_list.append(w.upper())
word = word[:j] + '[' + word[j] + ']' + word[j+1:]
words[i] = word
return
for i in range(n):
return_key(input_list[i])
print(*input_list[i],sep=' ')
# ์ฝ๋2 -- ์ฐธ๊ณ
์ฒ์์๋ sys.stdin.readline().split()์ผ๋ก ํด์ ๋จ์ด๋ณ๋ก ์ ๋ ฅ์ ๋ฐ์์๋๋ฐ
for๋ฌธ์ ์ด์ค์ผ๋ก ๋๋ ๊ณผ์ ์ด ์ด์ง ํท๊ฐ๋ ธ๋ค. strip()๋ก ์ ๋ ฅ ๋ฐ์ผ๋ ๋ ์ฝ๋๊ฐ ์ฝ๊ฒ ํ๋ ธ๋ ๊ฒ ๊ฐ๊ธฐ๋ ํ๊ฑธ
์ฒ์์ words[i] != ' ' ์ด ๋ถ๋ถ์ ๊น๋จน์ด์ ๋ต์ด ํ๋ ธ์์
๋ฐ๋ก)
์ ๋ ฅ
2
aa aa
aa aa
์ ๋ต
[a]a aa
aa aa
๋์ ๋ต
[a]a aa
aa[ ]aa
# 2025-05-02 14:44-15:13
import sys
sys.stdin = open("input.txt","r")
n = int(sys.stdin.readline().strip())
input_list = [list(sys.stdin.readline().strip()) for _ in range(n)]
key_list = []
def return_key(words):
# ์ผ์ชฝ์์๋ถํฐ ์ค๋ฅธ์ชฝ ์์๋ก ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ์ด๋ฏธ ๋จ์ถํค๋ก ์ง์ ๋์๋์ง
if words[0].upper() not in key_list:
key_list.append(words[0].upper())
words[0] = '[' + words[0] + ']'
return
for i in range(1, len(words)):
if words[i-1] == ' ' and words[i].upper() not in key_list:
key_list.append(words[i].upper())
words[i] = '[' + words[i] + ']'
return
# ์ด๋ ํ ๊ฒ๋ ๋จ์ถํค๋ก ์ง์ ํ ์ ์๋ค๋ฉด ๊ทธ๋ฅ ๋๋๋ฉฐ ๋์๋ฌธ์๋ฅผ ๊ตฌ๋ถ์น ์๋๋ค.
for i in range(1, len(words)):
if words[i] != ' ' and words[i].upper() not in key_list:
key_list.append(words[i].upper())
words[i] = '[' + words[i] + ']'
return
for i in range(n):
return_key(input_list[i])
print(*input_list[i],sep='')
# ์ฐธ๊ณ (ํ๋ฆฐ ์ฝ๋- ์ฒซ์๋)
์ ํ๋ฆฐ์ง ๋ชจ๋ฅด๊ฒ ์.. ๋ชจ๋ ์์ ์ ๋ํ ๋ต์ ๋ง๋๋ฐ
# 2025-05-01 11:14 - 55
import sys
sys.stdin = open("input.txt","r")
n = int(sys.stdin.readline().strip())
string_list = [sys.stdin.readline().split() for _ in range(n)]
key = []
for string in string_list:
flag = False
for i in range(len(string)):
# ๋จ์ด์ ์ฒซ ๊ธ์๊ฐ ์ด๋ฏธ ๋จ์ถํค? -> ์ด๋ฏธ ์ง์ ์ ๋ค์ ๋จ์ด
if string[i][0].upper() not in key and string[i][0].lower() not in key:
key.append(string[i][0])
flag = True
break
if not flag:
for i in range(len(string)):
# ๊ทธ ์ด๋ ํ ๊ฒ๋ ์ง์ ํ ์ ์๋ค๋ฉด ๋์๋ฌธ์ ๊ตฌ๋ณ X
for s in string[i]:
if s.upper() not in key and s.lower() not in key:
key.append(s)
flag = True
break
if flag:
break
if not flag:
key.append(None)
for i in range(len(string_list)):
flag = False
for string in string_list[i]:
for s in string:
if not flag and s == key[i]:
print(f'[{s}]',end='')
flag = True
else:
print(s,end='')
print(end=' ')
print()
'๐ Study > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Silver II] 15787 - ๊ธฐ์ฐจ๊ฐ ์ด๋ ์ ํค์น๊ณ ์ํ์๋ฅผ (0) | 2025.05.08 |
---|---|
[Silver II] 12933 - ์ค๋ฆฌ (0) | 2025.05.04 |
[Gold V] 21608 - ์์ด ์ด๋ฑํ๊ต (1) | 2025.04.30 |
[Gold V] 16926 - ๋ฐฐ์ด ๋๋ฆฌ๊ธฐ1 (0) | 2025.04.27 |
[Gold IV] 1107 - ๋ฆฌ๋ชจ์ปจ (0) | 2025.04.25 |