📜 접근 방법
특정 문자가 연속되지 않을 경우 외톨이 알파벳이라고 판단
무조건 하나의 덩어리로 뭉쳐있어야함!
- 딕셔너리에 특정 문자 갯수를 넣어줌 (key : value)
key는 특정 문자, value는 특정 문자 갯수 - 주어진 문자열 수만큼 반복
- 특정 문자의 갯수가 2 이상일 경우
- 특정 문자의 갯수만큼 반복문을 돌리는데 연속되게 문자가 나온다면 외톨이가 아닌걸로 판단
- 이 문자는 판단되었으니 갯수를 -1로 변경하여 더이상 확인하지 않게함
- 특정 문자의 갯수만큼 반복문을 돌리는데 연속되게 문자가 나오지 않으면 외톨이로 판단
- answer에 넣어주고 이 문자는 판단되었으니 갯수를 -1로 변경하여 더이상 확인하지 않게함
- 특정 문자의 갯수만큼 반복문을 돌리는데 연속되게 문자가 나온다면 외톨이가 아닌걸로 판단
- 특정 문자의 갯수가 2 이상일 경우
- answer이 빈 문자열이면 주어진 문자열에 외톨이 알파벳이 없으므로 N을 추가
✅ 정답 코드
def solution(input_string):
answer = ''
dict_ = {}
# 딕셔너리
for i in range(len(input_string)):
if input_string[i] in dict_:
dict_[input_string[i]] += 1
else:
dict_[input_string[i]] = 1
# 주어진 문자 갯수만큼 반복
for i in range(len(input_string)):
# 이미 검사한 경우
if dict_[input_string[i]] == -1:
continue
elif dict_[input_string[i]] > 1:
# 연속된 문자인지 확인
for j in range(dict_[input_string[i]]):
if input_string[i] != input_string[i + j]:
answer += input_string[i]
break
dict_[input_string[i]] = -1
if answer == "":
return "N"
answer = "".join(sorted(answer))
return answer
💡알게 된점
저번에 풀땐 못풀었는데 다시 생각해보고 방식을 바꿨더니 풀렸다. 문자열을 정렬할 경우 join과 sorted 잊지 말기!
'코딩테스트 > Python' 카테고리의 다른 글
[python 백준 1374] 강의실 (0) | 2023.04.07 |
---|---|
[python] pccp 모의고사 2 실습용 로봇 (0) | 2023.03.22 |
[python 백준 3107] IPv6 (0) | 2023.03.13 |
[python 백준 1715] 카드 정렬하기 (0) | 2023.02.04 |
[python 백준 1541] 잃어버린 괄호 (0) | 2023.02.02 |