알고리즘

[백준, 파이썬, 1283번] 단축키 지정

hminor 2023. 10. 1. 11:27

 

풀이

 

  • 띄워져 있는 단어가 들어올 수도 있기에 우선 split으로 구분하여 받은 다음
  • 처음에는 띄워져 있는 문자의 가장 앞의 단어를 확인 후 
  • _set에 추가
    • set 형에 추가한 이유는 list에 비해 해시값으로 찾아 찾는 속도가 빠르다고 했기에 적용
  • 이후 문자열 포매팅을 활용하여 문자를 변경하고
  • 만약 첫글자의 요소들이 다 추가가 되어 있는 경우엔
  • 2중 for문을 활용하여 각각의 문자에 접근하도록 한 다음 추가 후
  • 출력하여 해결

 

import sys
input = sys.stdin.readline
_set = set()
for _ in range(int(input())):
    s = list(input().rstrip('\n').split(' '))
    flag = False
    for i in range(len(s)):
        if s[i][0].lower() not in _set:
            _set.add(s[i][0].lower())
            s[i] = '[%s]'%s[i][0]+s[i][1:]
            flag = True
            break
    if not flag:
        for i in range(len(s)):
            for j in range(len(s[i])):
                if s[i][j].lower() not in _set:
                    _set.add(s[i][j].lower())
                    s[i] = s[i][:j]+'[%s]'%s[i][j]+s[i][j+1:]
                    flag = True
                    break
            if flag: break
    print(*s)