https://youtu.be/2zjoKjt97vQ?si=C2xtuq7aedV-mwg2
본 내용은 위 유투브를 참고해서 작성했음을 밝힙니다!
<문제> 문자열 재정렬
문제 해결 아이디어
나의 풀이
input_data = input() # K1KA5CB7
sorted_data = sorted(input_data)
num = 0
result = ''
# print(ord('0')) # 48
# print(ord('9')) # 57
for s in sorted_data:
if 48 <= ord(s) <= 57:
num += int(s)
# print(num)
else:
result += s
result += str(num)
print(result)
#%% md
* 일단 문자열 입력 받아서 리스트에 넣어서 정렬하고..
* 그 다음에 문자랑 숫자가 몇개가 들어오는지 모르니까 아스키코드 사용해서 더해주면 좋을 듯?
* 답이 나왔다! 얏호
* str을 사용하니까 에러가 뜨는데 파이썬 파일로 실행하니까 잘 된다..
* 주피터 노트북과 str이 뭔가 충돌하는게 있는듯..???
강의 풀이
data = input()
result = []
value = 0
# 문자를 하나씩 확인하며
for x in data:
# 알파벳인 경우 결과 리스트에 삽입
if x.isalpha():
result.append(x)
# 숫자는 따로 더하기
else:
value += int(x)
# 알파벳을 오름차순으로 정렬
result.sort()
# 숫자가 하나라도 존재하는 경우 가장 뒤에 삽입
if value != 0:
result.append(str(value))
# 최종 결과 출력 (리스트를 문자열로 변환하여 출력)
print(''.join(result))
#%% md
* 여기서도 비슷한데, isalpha()라는 파이썬 메소드를 사용해서 좀 더 깔끔하게 진행했다.
* 아마 C로 짜던 버릇이 아직 남아있는 것 같다.//
'Programming > Algorithm' 카테고리의 다른 글
[DFS/BFS] 재귀함수 (2) | 2024.02.13 |
---|---|
[DFS/BFS] 그래프 탐색 알고리즘 (0) | 2024.02.13 |
[구현 알고리즘] 문제: 왕실의 나이트 (0) | 2024.02.13 |
[구현 알고리즘] 문제: 시각 (2) | 2024.02.13 |
[구현 알고리즘] 문제: 상하좌우 (2) | 2024.02.12 |